DataGridViewセルの値をプログラムで変更した後、ソースを更新できません。私に何ができる?
datagridview1.DataSource = bindingsource1;
datagridview1.Rows[0].Cells[0].Value = "1";
DataGridViewセルの値をプログラムで変更した後、ソースを更新できません。私に何ができる?
datagridview1.DataSource = bindingsource1;
datagridview1.Rows[0].Cells[0].Value = "1";
datagridviewでrefreshを呼び出す必要があります
datagridview1.Refresh();
編集モードの場合は、EndEditを使用する必要があります
datagridview1.EndEdit();
datagridview1.Refresh();
これは手動で行う必要があると思います。データをグリッドビューにバインドします。グリッドビューを更新します。更新されたセルを選択し、データをデータに保存して戻し、データソースからデータをプルしてグリッドビューを更新します。
DataSet
ここに私のコードの下に、を書き戻す必要があります
private void button2_Click(object sender, EventArgs e)
{
this.Validate();
try
{
dgvArticles.CurrentRow.Cells[1].Value = txtSubject.Text;
dgvArticles.CurrentRow.Cells[2].Value = rtbBodyContent.Text;
dgvArticles.CurrentRow.Cells[3].Value = pbPrimaryPicture.Image;
dgvArticles.CurrentRow.Cells[4].Value = pbSecondaryPicture.Image;
dgvArticles.CurrentRow.Cells[5].Value = pbThirdPicture.Image;
}
catch
{
MessageBox.Show(e.ToString());
}
AccessingNetFamerDatabase anfdArticles = new AccessingNetFamerDatabase();
if (_dsArticles!= null)
{
SqlCommandBuilder _sqlCBArticles = new SqlCommandBuilder(AccessingNetFamerDatabase._sqlDataAdapter);
AccessingNetFamerDatabase._sqlDataAdapter.Update(_dsArticles.Tables[0]);
}
}
同じ問題がありますが、バインディングソースでEndEdit()を呼び出すことで解決できました。
例えば
bs.EndEdit();
int x1 = data.Update(dt);
次に、Updateは、更新された行数を返しました。EndEditが追加される前は、常にゼロでした。