2010-12-28 21 views
4

私はC#プロジェクトでADO.NETを使用しています。私のフォームでは、VS2010のツールボックスからSourceBinding要素を追加しました。私は私のデータセットのテーブルに接続を設定しました。私のためにDataAdapterを自動的に作成します。TableAdapterの挿入メソッドが機能していませんか?

レコードを挿入したいので、DataAdapterのInsert()メソッドを呼び出します。しかし、データベースのデータを見ると、新しいレコードはありません。

orderID = this.orderTableAdapter.Insert("", "", 
       (int)OrderStatus.IN_CONSTRUCTION, DateTime.Now); 

また、SqlCommandで手動で挿入する必要がありますか?

答えて

2

テーブルアダプタは、このデータセットを使用してDBにデータを出し入れするためのデータセットとともに使用するように設計されています。

を使用してデータセットの新しい行を作成し、そのフィールドに値を設定してから、DataSet.AddYourTableNameRow(row)を呼び出してデータセットに入れることができます。

orderTableAdapter.update(DataSet)これで新しい行をデータベースに送信できます。

行を削除または更新するには、まずその行をデータセットに選択し、オブジェクトを変更してから適切なテーブルアダプタの.update(ds)を呼び出して、データセットを元に戻します。

+0

うんしかし、この更新は、()データベースに保持されません...私が取得する場合データベースのデータですが、空です。 –

+0

接続文字列が正しいか。私は過去に接続文字列が生きているデータベースの代わりにデータベースをまだテストデータベースに向けているという問題を抱えていました。 – Spence

4

私もこれを理解することが困難でした。

あなたは私のために働いTableAdapter.Insert(...)

DataSet.AcceptChanges()を呼び出す必要があります。

ので、手順は次のとおりです。

  1. 視覚的 スタジオを使用してのBindingSource、TableAdapterのデータセットを作成します。
  2. TableAdapter.Fill(..)これは自動的に対で追加する必要があります//
  3. TableAdapter.Insert(..)
  4. DataSet.AcceptChanges()
  5. TableAdapter.Update(..)
関連する問題