C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.23660 の関連記事表示

<< 0 >>
■23660  Re[1]: DataGridViewで表示、変更したデータをDBに反映
□投稿者/ 魔界の仮面弁士 -(2008/08/20(Wed) 09:29:40)
    2008/08/20(Wed) 09:31:01 編集(投稿者)

    No23655 (追いつけない泥グラマ さん) に返信
    > いろいろ調べてみると、TableAdapter.Updateをすると更新ができるとあったのですが

    そこに書かれていた方法は、「TableAdapter」だったのかも知れませんが、
    追いつけない泥グラマさんは「DataAdapter」を使っておられますよ(両者は別物です)。

    まぁ、TableAdapter は DataAdapter の集合体のような物なので、どちらでも良いですけど。

    ちなみに、TableAdapter による更新例としてはこちら。
    http://www.microsoft.com/japan/msdn/thisweek/10lines/vs2005/adonet_dataupdate/cs.aspx


    > TableAdapter.Updateに渡すDatasetをDataGridViewからどうやって取り出すのかがわからずじまいです。

    DataGridView.DataSource に渡した DataSet/DataTable を、更新時に取り返す(キャストする)事もできなくは無いのですが、
    ここは、DataGridView.DataSource に渡した後も、アダプタをそのまま保持し続けるという手法にしてみては如何でしょうか。


    DataSet dtSet = new DataSet();
    OleDbConnection OleConn;
    OleDbDataAdapter OleDA;
    private void Form1_Load(object sender, EventArgs e)
    {
     // 接続文字列の指定には、OleDbConnectionStringBuilder を使うと便利かも。
     OleConn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\db1.mdb;");

     // 後で更新する必要があるので、SELECT 文には主キー項目を含めておくこと。
     OleDA = new OleDbDataAdapter("SELECT * FROM table1", OleConn);

     // 更新用の INSERT/DELETE/UPDATE 文を自動生成するための処理
     OleDbCommandBuilder builder = new OleDbCommandBuilder(OleDA);

     // データ取り出し
     OleDA.Fill(dtSet);

     // データ表示
     dataGridView1.DataSource = dtSet.Tables[0];
    }

    // 更新ボタン
    private void button1_Click(object sender, EventArgs e)
    {
     // DataGridView で変更された結果を反映
     OleDA.Update(dtSet);
    }
記事No.23655 のレス /過去ログ45より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -