0

CSVからDataTableにデータをロードし、このデータが入力されたDataTableからMSSQLにデータを挿入するアプリケーションがあります。

更新を行う方法についていくつかメモを見つけましたが、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コマンドを使用せずにこの更新を行う方法はありますか?

これから

SqlDataAdapter SQLUpdateAdapter = new SqlDataAdapter(sql_q、conn_update);

このようなものに(単なる例、私が見つけたい解決策のために)

 SqlDataAdapter SQLUpdateAdapter = new SqlDataAdapter(conn_update);

または、フォームDBを無意味に選択しないようにする別の方法はありますか?

2番目の(ばかげた)質問:SqlCommandBuilderを使用する目的は何ですか:

cmdBuilder = new SqlCommandBuilder(SQLUpdateAdapter);

cmdBuilder.GetUpdateCommand();

あなたの答えにたくさん感謝します!

4

1 に答える 1

1

質問 2 へ:

DataSet に関連する単一のテーブルを更新するためのSqlCommandBuilderTSQL クエリを自動的に生成します。これは、と SQL Server インスタンスのSqlDataAdapter間で変更を照合するクエリを が生成しなかったために必要です。また、イベントのリスナーとして自分自身を登録します。DataSetSqlCommandBuilderRowUpdating

于 2012-08-30T23:04:19.800 に答える