1 //要传一个DataSet,和若干个表 2 /// <summary> 3 /// 更新数据库 4 /// </summary> 5 /// <param name="dataSet">数据集</param> 6 /// <param name="tableName">数据表</param> 7 /// <returns>-1:失败;-2:无可更新数据;其他:成功</returns> 8 public int UpdateDatabase(DataSet dataSet,params String[] tableName) 9 { 10 int saveCount = -1; 11 //结束编辑 12 for (int i = 0; i < tableName.Length; ++i) 13 { 14 this.BindingContext[dataSet, tableName[i]].EndCurrentEdit(); 15 } 16 //检查变更//用一个东西存储所做的更改 17 DataSet changes = (DataSet)dataSet.GetChanges(); 18 if (changes != null) 19 { 20 21 for (int j = 0; j < tableName.Length; ++j) 22 { 23 //生成更新语句 24 string sqltext = "Select * From " + tableName[j] + " "; 25 //新建 一个连接 26 using (SqlConnection con = new SqlConnection(IConnectionString)) //这里要换成自己的连接字符串 27 { 28 //打开连接 29 con.Open(); 30 //新建DA 31 using (SqlDataAdapter oDA = new SqlDataAdapter(sqltext, con)) 32 { 33 try 34 { 35 //生成更新语句 36 SqlCommandBuilder sqlBuilder = new SqlCommandBuilder(oDA); 37 //更新数据库 38 saveCount += oDA.Update(changes, tableName[j]); 39 } 40 catch 41 { throw; } 42 } 43 } 44 } 45 //dataSet.Merge(changes ); //VS2015更新完成后会自动刷新数据,如果合并后会出现重复记录手动刷新后消失 46 dataSet.AcceptChanges(); 47 } 48 else 49 { 50 saveCount = -2; 51 } 52 return saveCount; 53 }