Установите флажок, чтобы выбрать или отменить выбор всех элементов столбца SQL - PullRequest
1 голос
/ 01 апреля 2019

У меня есть столбец SQL типа bit (булево), я могу отметить или снять некоторые элементы по своему выбору в сетке данных, где отображаются эти флажки.Теперь я хочу иметь один флажок для выбора или отмены выбора всех флажков в сетке данных.Я пришел к этому коду:

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();
}

Ответы [ 2 ]

1 голос
/ 01 апреля 2019

378 просмотров 0 решений, но я нашел одно собственное, объект chkbox получил два обработчика событий, один для проверенного и один для отключенного.

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();
}
0 голосов
/ 01 апреля 2019

Используйте следующий код:

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;
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...