【发布时间】:2014-10-18 14:38:55
【问题描述】:
我有一个包含位列的 SQL 数据库,每当单击复选框时,我想用当前值更新位列字段。
除了 DataGridView 没有更新并且我必须重新加载它以查看更改(选中/未选中)之外,一切都很好。 我尝试了 Refresh() 和 RefreshEdit() 但它不起作用。
private void dgv_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
SqlConnection db = new SqlConnection(Properties.Settings.Default.BikesConn);
if (e.ColumnIndex == 1)
{
if (dgv.Rows[e.RowIndex].Cells["Selected"].Value.ToString() == "True")
{
SqlCommand cmd = new SqlCommand(string.Format("UPDATE {0} SET Selected='0' WHERE ID={1}", Properties.Settings.Default.Profile, dgv.SelectedRows[0].Cells[0].Value.ToString()), db);
db.Open();
cmd.ExecuteNonQuery();
db.Close();
//loadGridViewer(Properties.Settings.Default.Profile);
}
if (dgv.Rows[e.RowIndex].Cells["Selected"].Value.ToString() == "False")
{
SqlCommand cmd = new SqlCommand(string.Format("UPDATE {0} SET Selected='1' WHERE ID={1}", Properties.Settings.Default.Profile, dgv.SelectedRows[0].Cells[0].Value.ToString()), db);
db.Open();
cmd.ExecuteNonQuery();
db.Close();
//loadGridViewer(Properties.Settings.Default.Profile);
}
【问题讨论】:
-
如何在GridView中绑定数据?您是否尝试过使用
dgv.DataBind()进行更新? -
我使用 SqlDataAdapter 进行绑定。选中/取消的值保存在数据库中,但在 DataGridViewer 中它保持不变,直到我重新加载它。
-
DGV 本身的 CheckBoxColumn 似乎存在某种问题:stackoverflow.com/questions/13338837/… 或者这可能会有所帮助:stackoverflow.com/questions/2047778/…
标签: c# datagridview