C# 如何把excel 或者DatagridView的数据“更新”到数据库里面
C# 怎么把excel 或者DatagridView的数据“更新”到数据库里面?
怎么把Excel 中的数据 更新到原有的数据表里面。或者把Datagridview 显示的数据更新到数据库里面。
datagridview 中的数据也是读取Excel 显示的。更新,不是插入。
------解决方案--------------------
逐行遍历Excel和DataGridView,判断与数据库中有什么不同,然后更新
更新的效率,可以将所有更新的sql一次执行,而不必要一次只更新一个
------解决方案--------------------
怎么把Excel 中的数据 更新到原有的数据表里面。或者把Datagridview 显示的数据更新到数据库里面。
datagridview 中的数据也是读取Excel 显示的。更新,不是插入。
------解决方案--------------------
逐行遍历Excel和DataGridView,判断与数据库中有什么不同,然后更新
更新的效率,可以将所有更新的sql一次执行,而不必要一次只更新一个
------解决方案--------------------
- C# code
public static DataSet SelectSqlSrvRows(string myConnection, string mySelectQuery, string myTableName) { SqlConnection myConn = new SqlConnection(myConnection); SqlDataAdapter myDataAdapter = new SqlDataAdapter(); myDataAdapter.SelectCommand = new SqlCommand(mySelectQuery, myConn); SqlCommandBuilder cb = new SqlCommandBuilder(myDataAdapter); myConn.Open(); DataSet ds = new DataSet(); myDataAdapter.Fill(ds, myTableName); //code to modify data in DataSet here //Without the SqlCommandBuilder this line would fail myDataAdapter.Update(ds, myTableName); myConn.Close(); return ds; }
------解决方案--------------------
这只能解决有主键的数据表,对于没有主键的是不能解决的啊!
------解决方案--------------------
你先分析出表里的主键,然后手动写一个update的sql语句,然后用带参数的格式,然后循环数据源,给command设置参数并执行就行了。外层还应该套用事务。
------解决方案--------------------
如果你使用DatagridView,那你最好使用DataAdapter获取和更新数据表。从数据库获取了数据表(DataSet或DataTable)之后,使用bindingSource为桥绑定到DataGridView。这样你更改了数据之后,对应的数据表(DataTable)相应的数据行就会更改,提交数据时可以只提交已更改的行(用GetChanges()方法)。使用Adapter的Update更新。