none
DataGridViewのComboBoxの値をUpdate()で反映させる方法はありますか。 RRS feed

  • 質問

  • 初歩的な質問で申し訳ありません。
    以下の2種類のテーブルを使って、DataGridViewへデータを表示する事は成功しました。

    DataGridViewは、ID, 名前, クラスの3列で構成され、クラスはT_クラスで作ったComboBoxです。

    テーブル構成は以下の通りです。
    ①T_生徒
    番号, 名前, クラス番号
    1, 山田太郎, 1
    2, 佐藤次郎, 2

    ②T_クラス
    番号, クラス
    1, A
    2, B

    その後、DataGridViewの値を更新してUpdate()を実行したところ、[名前]は更新され、[クラス]は更新されずにいました。

    そこで質問になりますが
    ①DataGridViewの中にあるComboBoxの値も、Updateコマンドで更新等はできるのでしょうか。

    ②対象のComboBoxのデータ構成を、以下にしてUpdateCommandを作成したとします。
    CommandText = "UPDATE T_生徒 SET [名前] = @Name, [クラス] = @class WHERE [ID] = @ID";
    ValueMember = "番号"
    DisplayMember = "クラス"
    cmd.Parameters.Add("@Name", SqlDbType.NVarChar, 10, "名前")
    cmd.Parameters.Add("@class", SqlDbType.Int, 4, "クラス")
    cmd.Parameters.Add("@ID", SqlDbType.Int, 4, "番号")
    →第4引数は、DataGridViewの列名と同じにしています。

    ②ComboBoxが変更された事を、DataSetのHasChanges()で調べようと思いましたが、
    変更箇所がComboBoxの中だけだと、更新は無かった扱いになります。更新したと判定してくれる条件や関数等、何か良い方法はありますでしょうか。

    以上、説明が分りにくくて申し訳ありませんが、何卒よろしくお願いします。

    • 編集済み mexicanafro 2021年2月16日 9:19 誤字
    2021年2月15日 4:40

回答

すべての返信