0

別の問題があります。私はデータグリッドビューをバインドしました。その行をダブルクリックすると、すべてのセル値がテキストボックスに「変換」されます。私がやりたいのは、テキストボックスの値を変更するときに、datagridview と datatable にも変更を加える必要があるということです。これまでのところ、選択した行ではなく、datagridview の最初の行のみを変更できます。これが私のコードです:

private void buttonUredi_Click(object sender, EventArgs e)
    {
        int i = 0;
        foreach (DataGridViewRow row in dataGridView1.SelectedRows)
        {
            for (int j = 0; j < dataGridView1.ColumnCount; ++j)
            {
               competitorDataSet.Growns.Rows[i][j] = row.Cells[j].Value;
            }

                }
                competitorDataSet.Growns.Rows[i][0] = textStN.Text;
                competitorDataSet.Growns.Rows[i][1] = textN.Text;
                competitorDataSet.Growns.Rows[i][2] = textSN.Text;
                competitorDataSet.Growns.Rows[i][3] = textC.Text;
                competitorDataSet.Growns.Rows[i][4] = textYB.Text;
                this.grownsBindingSource.EndEdit();
                if (dataGridView1.BindingContext[competitorDataSet.Growns] != null)
                {
                    dataGridView1.BindingContext[competitorDataSet.Growns].EndCurrentEdit();
                }
                this.competitorDataSet.Growns.AcceptChanges();
}
4

2 に答える 2

0

int i = 0インデクサーの変数として使用してDataTable.Rowsいますが、決して変更していません。

int i = 0;
foreach (DataGridViewRow row in dataGridView1.SelectedRows)
{
    for (int j = 0; j < dataGridView1.ColumnCount; ++j)
    {
       competitorDataSet.Growns.Rows[i][j] = row.Cells[j].Value;
    }
    i++;
}

ただし、それはテーブルの任意の行、つまり最初のdataGridView1.SelectedRows.Count行を変更します。それは望ましいことですか?

于 2013-07-24T11:27:01.637 に答える