StringBuilder sb = new StringBuilder(); foreach (DataRow dr in datatable.Rows) { sb.Append(" INSERT Table"); } 执行sql语句 sb.ToString()
如果数据量太大,比如超过1000,可以判断每满1000个的时候执行一次sql
没看懂 您写的。。dr怎么没有道。。
@初阶风行: 大哥,一楼是简写了而已,是告诉你可以用这种思维来实现,SQL语句自己拼接啊
研究下SQLCommandBuilder去吧
向 sqlserver 中大量插入数据 可以用 SqlBulkCopy, 基本算是最快的了
SqlBulkCopy sqlBulkCopy = new SqlBulkCopy(SqlHelper.SqlConnection); sqlBulkCopy.DestinationTableName = "Table1"; if (dataTable != null && dataTable.Rows.Count != 0) { sqlBulkCopy.WriteToServer(dataTable); } sqlBulkCopy.Close();
dataTable 与 数据库的表 列名要一样 否则要做mapping
SqlBulkCopy 不错。
SqlBulkCopy 哈哈,好东西,通过这个问题我也学到了不少。
你可以把1000条insert语句 ,一次执行地,sql 又没说每次只能执行一条语句
可以一行一行循环着来
foreach(DataRow dr in dt.Row)
{
SqlHelper.ExecNonNouqery(string.Formate("insert into tb(c1,c2,c3) values({0},{1}, {2})",dr[0].ToString(),dr[1].ToString(),dr[2].ToString())
}