1

これは私の最初の質問です。この提示スタイルで失礼します。

categories次の列を持つMySQLテーブルがあります。

  • c_id (自動インクリメント)
  • c_code
  • c_name

これが私がやろうとしていることです。

  • データセットには 1 つのテーブルが含まれています -categories
  • データセットに行を追加 (新しいカテゴリ)
  • mysqldataadaptorupdate()メソッドを使用してデータベースを更新する
  • データグリッド ビューでデータセット エントリを表示する

問題は、新しい行を挿入した後、データセットの関連する行に、最後に挿入された主キー (自動生成されたもの) が表示されないことです。しかし、それは値を示しています。

これは、新しい行を追加するコードです

var dr = ds.Tables["categories"].NewRow();
    dr["c_code"] = "tst123";
    dr["c_name"] = "123tdt";
ds.Tables["categories"].Rows.Add(dr);

これは、データベースを更新するコードです

adp.Update(ds.Tables[tempTableName]);

そして最後に、これは私がデータセットSOON AFTERを行の上に表示する方法です

dataGridView1.DataSource = ds.Tables["categories"];

問題:
グリッドビューのみc_codeで、c_nameそこに表示されます。

データセットに最後に挿入されたものを取得するにはどうすればよいidですか?

4

3 に答える 3

0

ID を取得するには、新しい adp.Fill(ds) を実行する必要があると思います。c_code と c_name のみを指定します。したがって、c_code と c_name だけがグリッドに入力された列になります。adp.Update はデータベースを更新します。明らかな理由により、更新後にデータセット全体をリロードしません。

于 2012-10-30T10:38:16.420 に答える