批量插入
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.数据怎么流。

浙公网安备 33010602011771号