有些时候我们会遇到一些导入数据库的问题,比如,你有一列电话号码,存在记事本里,你把它粘贴进一个文本框,点击批量导入。
你可以按换行符把它们分割成一个数组,然后再for循环一下,导入数据库,不过这样的话,需要的时候比较长。
如果你使用新建一个datatable然后把数组填充进去,然后再批量的更新这个datatable,这样就会比较快。
下面是代码:
//×××××××××××××××××××××××××××××××××××
string constr = @"Server=.\SQLExpress2008;Database=shop;Persist Security Info=True;User ID=sa;Password=111";
SqlConnection conn = new SqlConnection(constr);
//设置Select查询命令,SqlCommandBuilder要求至少有Select命令
SqlCommand SelectCMD = new SqlCommand("Select top 0 SNo,SName,SAge from Student", conn);
DataTable dt1 = new DataTable();
SqlDataAdapter sda = new SqlDataAdapter(SelectCMD);
//上面的语句中使用Select 0,不是为了查询出数据,而是要查询出表结构以向DataTable中填充表结构
sda.Fill(dt1);
//给DataTable添加10条记录
for (int i = 1; i <= 10; i++)
dt1.Rows.Add(new object[] { i, "aaa" + i, 20 + i });
SqlCommandBuilder scb = new SqlCommandBuilder(sda);
//执行更新
sda.Update(dt1.GetChanges());
//使DataTable保存更新
dt1.AcceptChanges();
//×××××××××××××××××××××××××××××××××××