C# 复选框以选择或取消选择SQL列的所有项

C# 复选框以选择或取消选择SQL列的所有项,c#,sql,wpf,C#,Sql,Wpf,我有一个bit(boolean)类型的SQL列,我可以从数据网格中选中或取消选中我选择的某些项,这些复选框显示在数据网格中。现在我想有一个复选框来选择或取消选择数据网格中的所有复选框。我得出了以下代码: private void Chk_All_Checked(object sender, RoutedEventArgs e) { sqliteCon.Open(); if (sqliteCon.State == System.Data.ConnectionState.Open) {

我有一个bit(boolean)类型的SQL列,我可以从数据网格中选中或取消选中我选择的某些项,这些复选框显示在数据网格中。现在我想有一个复选框来选择或取消选择数据网格中的所有复选框。我得出了以下代码:

private void Chk_All_Checked(object sender, RoutedEventArgs e)
{
  sqliteCon.Open();
  if (sqliteCon.State == System.Data.ConnectionState.Open)
  {

    CORRENTE

    string q = @"UPDATE tabL
                     SET selection = (CASE 
                                        WHEN (SELECT selection FROM tabL ) = 0
                                        THEN 1
                                        ELSE 0
                                      END)
                     WHERE ?????????????????????";

    SqlCommand cmd = new SqlCommand(q, sqliteCon);
    cmd.ExecuteNonQuery();
    MessageBox.Show("All Items Checked");


  }
  sqliteCon.Close();
}
“WHERE idL=@CURRENT”是错误的

下面是另一个尝试,但效果不佳:

private void Chk_All_Checked(object sender, RoutedEventArgs e)
{
  sqliteCon.Open();
  if (sqliteCon.State == System.Data.ConnectionState.Open)
  {
    string q = @"UPDATE tabL
                     SET selection = 1";
    SqlCommand cmd = new SqlCommand(q, sqliteCon);
    cmd.ExecuteNonQuery();
    MessageBox.Show("All Items Checked");


    string q2 = @"UPDATE tabL
                     SET selection = 0";
    SqlCommand cmd2 = new SqlCommand(q2, sqliteCon);
    cmd2.ExecuteNonQuery();
    MessageBox.Show("All Items DeChecked");


  }
  sqliteCon.Close();
}

使用以下代码:

private void DataGridView_CellClick(object sender, DataGridViewCellEventArgs e)
{
    if (e.RowIndex >= 0 && e.ColumnIndex == 0)
    {         
        foreach (DataGridViewRow row in dataGridView1.Rows)
        {
            if (row.Index == e.RowIndex)
            {
                row.Cells["checkBoxColumn"].Value = 
                !Convert.ToBoolean(row.Cells["checkBoxColumn"].EditedFormattedValue);
            }
            else
            {
                row.Cells["checkBoxColumn"].Value = false;
            }
        }
    }
}

378查看了0个解决方案,但我自己找到了一个 chkbox对象有两个事件处理程序,一个用于checked,另一个用于deceked

private void Chk_All_Checked(object sender, RoutedEventArgs e)
{
  sqliteCon.Open();
  if (sqliteCon.State == System.Data.ConnectionState.Open)
  {
    if (chk_All.IsChecked == true) { 
    string q = @"UPDATE tabList
                     SET selection = 1";
    SqlCommand cmd = new SqlCommand(q, sqliteCon);
    cmd.ExecuteNonQuery();
    MessageBox.Show("All Items Checked");
    }


  }
  sqliteCon.Close();
}



  private void CheckBox_Unchecked(object sender, RoutedEventArgs e)
{
  sqliteCon.Open();
  if (sqliteCon.State == System.Data.ConnectionState.Open)
  {
    if (chk_All.IsChecked == false)
    {
      string q2 = @"UPDATE tabList
                     SET selection = 0";
      SqlCommand cmd2 = new SqlCommand(q2, sqliteCon);
      cmd2.ExecuteNonQuery();
      MessageBox.Show("All Items DeChecked");
    }
  }
  sqliteCon.Close();
}

您从未将
@CURRENT
参数添加到SQL语句中。我不需要知道@CURRENT行的确切位置,因为我必须选中或取消选中所有行,将它们全部设置为0或全部设置为1,我想您误解了。我知道但知道要添加哪些参数。如果选中,则只需选中一个复选框即可将表“tabList”的所有列“selection”设置为1,如果未选中,则设置为0,有什么不清楚的?很抱歉,我不理解这个问题,我需要在单击单个单独的复选框时选中或取消选中em all(Chk_all)datagrdiview来自windows formWelcome to stackoverflow。请添加一个关于如何解决问题的简要说明。谢谢,考虑到DataGridView不是来自WPF