2009-08-31 21 views
0

私は自分のローカルのテーブルと同じサーバ上のデータベースにテーブルを持っています。私は一度クリックしてアプリケーションをサーバー上のレコードのバージョンを私のローカルにダウンロードする必要があります。データベーステーブルへのデータセットの挿入

現時点では、asp.netデータセットをコンテナとして使用して、サーバー上のレコードをバッチで取り戻すwebserviceがあります。私のローカルのテーブルにデータセット全体をコミットするにはどうすればよいですか?私のローカルのテーブルは空です。

事前に乾杯!

答えて

0

いくつかのオプションがあります。ここに来る最初の2つがあります。

  • 1つは、DataTableをループし、各ループでSQL Insertステートメントを作成し、ローカルに対してInsertステートメントを実行することです。あなたは既に1つのまたは複数のDataTable、なぜあなただ​​けのSqlDataAdapterオブジェクトを使用し、その」.Updateを呼び出すことはありませんを含む、DataSetを持っている場合
  • もう一つは)(データ
3

を挿入するためにSQL Bulk Copyを使用することです"あなたのデータセットのメソッド?

SqlDataAdapterでは、InsertCommand、UpdateCommand、DeleteCommandを定義して、行の3つの基本的な挿入/更新/削除ステートメントを処理できます。これらの3つのSQL文を一度定義/記述するだけで、SqlDataAdapterがあなたのために残ります(行のループ、挿入、更新、削除などの判断)。

必要に応じて、DataSetのSelectCommandから基本SELECTステートメントを使用し、SqlCommandBuilderを使用して、SELECTに基づいてINSERT、UPDATEおよびDELETEステートメントを作成することもできます。

マルク・

+0

私は前にこれを使用していました。私がsqldataadapterを使用している場合、私の理解では、テーブルからデータを取得してから、updateメソッドを実行する必要があります。私は本当にやりたくないレコードをたくさん検索しています。 私はバッチでこの挿入を行っているので、最初は戻ってくるレコードはありませんが、ゆっくりと膨大になります。たぶんsqladaptersでそれを行う別の方法がありますが、私はこれについては分かりません。 –

+1

いいえ、いろいろなSQLステートメントがあれば、まずデータを取得する必要はありません.DataSetに手動で追加してから、SqlDataAdapterで.Update()を呼び出すことができます。 DataSetに新しい行を追加すると、それらは「RowState = added」になっているので、適切なInsertCommandによってデータベースに挿入されます。 –

+0

それは素晴らしいです。それは私の問題には完璧です。これの例がありますか? –