C#批量插入

来源:百度知道 编辑:UC知道 时间:2024/06/24 11:14:43
我现在的SQL语句是
//生成动态inset语句
StringBuilder builder1 = new StringBuilder("insert into");
builder1.Append(" ").Append(tableName).Append("(");
ListViewItem l = new ListViewItem();
for (int i = 0; i < listView1.Items.Count; i++)
{
builder1.Append(listView1.Items[i].SubItems[0].Text).Append(",").Append(" ");
}
builder1.Replace(builder1.ToString(), builder1.ToString().Substring(0, builder1.ToString().Length - 2).ToString());
builder1.Append(") values (");
foreach (DataRow dr in ds.Tables[0].Rows)
{
StringBuilder builder2 = new StringBuilder();
for (int i = 0; i < listView1.Items.Count; i++)
{
string s = listView1.Items[i].SubItems[1].Text;
builder2.Append("'").Append(dr[s]).Append("',").Append(" ");
}

还是用你的方式组合SQL吧

特别要注意组合的SQL长度不能超过8000个字符,

我以前做数据导入就碰到这问题

自己构造sql插进去 类似于

insert into table
select field1=value1,field2=value2...your_new_field=value
union
select field1=value1,field2=value2...your_new_field=value

其实没有必要啦 一次一次插不行吗?多数据的话 你就得考虑其他实现方式 比如用存储过程什么的 其实也没区别

如果是DateSet导入数据库中的话好办,
SqlDataAdapter.Update(DateSet);用这个方法可以把DateSet的内容全部更新到数据库中。

其实都还不是要循环搞进去,sql语句构造好后,设置一个每次插入的条数,就可以了