【问题标题】:DataGridView checkBox updateDataGridView 复选框更新
【发布时间】: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


【解决方案1】:

通过添加以下代码解决:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多