如何从DataTable更新SQL,而不在DataAdaper初始化中选择查询

时间:2012-08-30 22:36:40

标签: c# datatable sql-update dataadapter sqldataadapter

我有应用程序,它将数据从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();

非常感谢你的答案!

1 个答案:

答案 0 :(得分:1)

问题#2:

SqlCommandBuilder自动生成TSQL查询以更新与您的DataSet相关的单个表。这是必要的,因为SqlDataAdapter没有生成匹配DataSet和SQL Server实例之间的更改的查询。 SqlCommandBuilder也将自己注册为RowUpdating活动的听众。