我有应用程序,它将数据从CSV加载到DataTable,并从这个填充的DataTable中将数据插入MS SQL。
我发现了一些如何进行更新的说明,但我正在寻找如何避免选择初始化DataAdapter的方法:
conn_update.Open();
string sql_q = "@"SELECT * FROM [publicDB].[dbo].[customers]"
SqlDataAdapter SQLUpdateAdapter = new SqlDataAdapter(sql_q, conn_update);
cmdBuilder = new SqlCommandBuilder(SQLUpdateAdapter);
cmdBuilder.GetUpdateCommand();
SQLUpdateAdapter.Update(treti);
第一个问题:
在初始化SQL DataAdapter时,是否有任何方法可以执行此更新,而不使用Select Command?
从此
SqlDataAdapter SQLUpdateAdapter = new SqlDataAdapter( sql_q , conn_update);
对于这样的事情(仅举例,对于我想要找到的解决方案)
SqlDataAdapter SQLUpdateAdapter = new SqlDataAdapter(conn_update);
或者另一种方法如何避免无意义的选择表单DB?
第二个(愚蠢的)问题:使用SqlCommandBuilder的目的是什么:
cmdBuilder = new SqlCommandBuilder(SQLUpdateAdapter);
cmdBuilder.GetUpdateCommand();
非常感谢你的答案!
答案 0 :(得分:1)
问题#2:
SqlCommandBuilder
自动生成TSQL查询以更新与您的DataSet相关的单个表。这是必要的,因为SqlDataAdapter
没有生成匹配DataSet
和SQL Server实例之间的更改的查询。 SqlCommandBuilder
也将自己注册为RowUpdating
活动的听众。