首页 新闻 会员 周边

datatable里的数据怎么插入数据库中的表中

0
悬赏园豆:100 [已解决问题] 解决于 2012-08-31 13:11

datatable中有大量数据。。怎么插入表中效率高点。。求高手指点。。最好有代码。。谢谢大家

初阶风行的主页 初阶风行 | 初学一级 | 园豆:14
提问于:2012-08-29 21:02
< >
分享
最佳答案
0
StringBuilder sb = new StringBuilder();
            foreach (DataRow dr in datatable.Rows)
            {
                    sb.Append("  INSERT Table");
            }
执行sql语句 sb.ToString()

如果数据量太大,比如超过1000,可以判断每满1000个的时候执行一次sql

收获园豆:50
田林九村 | 老鸟四级 |园豆:2367 | 2012-08-29 22:33

没看懂 您写的。。dr怎么没有道。。

初阶风行 | 园豆:14 (初学一级) | 2012-08-29 22:36

@初阶风行: 大哥,一楼是简写了而已,是告诉你可以用这种思维来实现,SQL语句自己拼接啊

八戒的师傅 | 园豆:1472 (小虾三级) | 2012-08-30 00:14
其他回答(5)
0

研究下SQLCommandBuilder去吧

收获园豆:10
E1ement | 园豆:59 (初学一级) | 2012-08-29 22:58
0

向 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

收获园豆:20
gunsmoke | 园豆:3592 (老鸟四级) | 2012-08-30 06:49

SqlBulkCopy 不错。

支持(0) 反对(0) chenping2008 | 园豆:9836 (大侠五级) | 2012-08-30 13:07
0

SqlBulkCopy 哈哈,好东西,通过这个问题我也学到了不少。

收获园豆:10
jerry-Tom | 园豆:4077 (老鸟四级) | 2012-08-30 13:38
0

你可以把1000条insert语句 ,一次执行地,sql 又没说每次只能执行一条语句

收获园豆:10
架构师修行之路 | 园豆:322 (菜鸟二级) | 2012-08-30 16:35
0

可以一行一行循环着来

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())

}

Langu | 园豆:202 (菜鸟二级) | 2015-07-21 12:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册