批量插入

 private static void InsertTblRptWeek()
        {
            DataTable dtMonth = new DataTable();//构建DataTable
            dtMonth.Columns.Add("CreateTime", typeof(DateTime));
            dtMonth.Columns.Add("RptID", typeof(string));
            dtMonth.Columns.Add("UserID", typeof(string));
            dtMonth.Columns.Add("FMType", typeof(string));
            dtMonth.Columns.Add("FMAddress", typeof(string));
            dtMonth.Columns.Add("RptDate", typeof(string));
            dtMonth.Columns.Add("RptWeek", typeof(string));
            dtMonth.Columns.Add("Flux", typeof(double));
            dtMonth.Columns.Add("AccountsID", typeof(string));
            dtMonth.Columns.Add("TotalFlux", typeof(double));
            dtMonth.Columns.Add("ItsFlux", typeof(double));
            dtMonth.Columns.Add("FluxMax", typeof(double));
            dtMonth.Columns.Add("FluxMin", typeof(double));
            dtMonth.Columns.Add("FluxAve", typeof(double));
            dtMonth.Columns.Add("ItsFluxMax", typeof(double));
            dtMonth.Columns.Add("ItsFluxMin", typeof(double));
            dtMonth.Columns.Add("ItsFluxAve", typeof(double));
            for (int i = 0; i < week.Count; i++)//要插入的集合
            {
                DataRow row = dtMonth.NewRow();
                row["CreateTime"] = week[i].CreateTime;
                row["RptID"] = week[i].RptID;
                row["UserID"] = week[i].UserID;
                row["FMType"] = week[i].FMType;
                row["FMAddress"] = week[i].FMAddress;
                row["RptDate"] = week[i].RptDate;
                row["RptWeek"] = week[i].RptWeek;
                row["Flux"] = week[i].Flux;
                row["AccountsID"] = week[i].AccountsID;
                row["TotalFlux"] = week[i].TotalFlux;
                row["ItsFlux"] = week[i].ItsFlux;
                row["FluxMax"] = week[i].FluxMax;
                row["FluxMin"] = week[i].FluxMin;
                row["FluxAve"] = week[i].FluxAve;
                row["ItsFluxMax"] = week[i].ItsFluxMax;
                row["ItsFluxMin"] = week[i].ItsFluxMin;
                row["ItsFluxAve"] = week[i].ItsFluxAve;
                dtMonth.Rows.Add(row);
            }
            using (SqlBulkCopy copy = new SqlBulkCopy(SqlHelper.conStr))
            {
                copy.BatchSize = 1000;//每次插入的记录数                
                copy.DestinationTableName = "tblRptWeek";
                //DataTable与数据表的字段名称对应(数据迁移到时候,可以解决表字段名称不一样)
                copy.ColumnMappings.Add("CreateTime", "CreateTime");
                copy.ColumnMappings.Add("RptID", "RptID");
                copy.ColumnMappings.Add("UserID", "UserID");
                copy.ColumnMappings.Add("FMType", "FMType");
                copy.ColumnMappings.Add("FMAddress", "FMAddress");
                copy.ColumnMappings.Add("RptDate", "RptDate");
                copy.ColumnMappings.Add("RptWeek", "RptWeek");
                copy.ColumnMappings.Add("Flux", "Flux");
                copy.ColumnMappings.Add("AccountsID", "AccountsID");
                copy.ColumnMappings.Add("TotalFlux", "TotalFlux");
                copy.ColumnMappings.Add("ItsFlux", "ItsFlux");
                copy.ColumnMappings.Add("FluxMax", "FluxMax");
                copy.ColumnMappings.Add("FluxMin", "FluxMin");
                copy.ColumnMappings.Add("FluxAve", "FluxAve");
                copy.ColumnMappings.Add("ItsFluxMax", "ItsFluxMax");
                copy.ColumnMappings.Add("ItsFluxMin", "ItsFluxMin");
                copy.ColumnMappings.Add("ItsFluxAve", "ItsFluxAve");
                copy.WriteToServer(dtMonth);//DataTable变量
            }           
        }

  

批量插入分3步

1.建datatable

2.给datatable赋值

3.插入

这些步骤有先后顺序。这样可以写3个方法任意调用也可以写一个方法。

 

这个技术很普片,我习惯用集合。这样画流程图时思路就很清晰。然后敲代码时也可以一个小步一个小步的敲。

 

最后做模块的建议

1.数据从那儿来(数据库或集合)

2.数据要到哪儿去(数据库或集合或页面)

3.数据怎么流。

posted @ 2017-02-24 13:56  水务大牛  阅读(117)  评论(0)    收藏  举报