DataGridView checkBox更新

时间:2014-08-25 12:32:13

标签: c# datagridview

我有一个包含位列的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);
            }

1 个答案:

答案 0 :(得分:0)

通过添加以下代码解决:

dgv.Rows [e.RowIndex] .Cells [" Selected"]。Value =!(bool)dgv.Rows [e.RowIndex] .Cells [" Selected"] .value的;