0

以下を使用して、WinFormのDataGridViewにテーブルを追加しました。

    void PopulateGridView() {
        conn = new SqlConnection(ConfigurationManager.ConnectionStrings["IMS"].ConnectionString);
        myAdapt = new SqlDataAdapter("SELECT * FROM FrontDesk.dbo.tb_xxx", conn);
        mySet = new DataSet();
        myAdapt.Fill(mySet, "AvailableValues");
        myTable = mySet.Tables["AvailableValues"];

        this.uxChargeBackDataGridView.DataSource = myTable;
        this.uxChargeBackDataGridView.Columns["RefKey"].Visible = false; 
    }

テーブルには5つの行があり、フィールドは2つだけです。フィールドRefKeyはDGVから隠されており、基になるテーブルの主キーです。

次の機能が機能しないのはなぜですか?Add行を追加するために使用されるDGVのRowsコレクションのプロパティのようです。

    private void button1_Click(object sender, EventArgs e)
    {
        uxChargeBackDataGridView.Rows.Add(6, "dre");
    }
4

1 に答える 1

0

グリッドはソースとしてDataTableを使用しているため、テーブルに行を追加する必要があります。グリッドはそれを自動的に反映する必要があります。

DataTable table = (DataTable)uxChargeBackDataGridView.DataSource;
DataRow row = table.NewRow();
row[0] = 6;
row[1] = "dre";
table.Rows.Add(row);

データテーブルの関数を使用NewRow()して、データテーブルで使用されるスキーマを持つDataRowオブジェクトを取得します。

変数をフォームレベルのスコープに移動したtable場合は、参照を作成する必要はありません。代わりに使用することができます。mySetmyTablemyTable.Rows.Add(row);

于 2012-05-22T16:22:58.570 に答える