0

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

或者另一种方式如何避免无意义的选择表格数据库?

第二个(愚蠢的)问题:使用 SqlCommandBuilder 的目的是什么:

cmdBuilder = new SqlCommandBuilder(SQLUpdateAdapter);

cmdBuilder.GetUpdateCommand();

非常感谢您的回答!

4

1 回答 1

1

对于问题 #2:

SqlCommandBuilder自动生成 TSQL 查询以更新与您的数据集相关的单个表。这是必要的,因为SqlDataAdapter没有生成DataSet与 SQL Server 实例之间的更改匹配的查询。SqlCommandBuilder还将自己注册为RowUpdating事件的侦听器。

于 2012-08-30T23:04:19.800 回答