Я работаю над приложением на C # для заполнения записей из SQL Server в представление сетки данных, с возможностью динамического чекбокса в каждой строке.Я хочу выбрать выбранные строки для какой-либо цели через флажок этой конкретной строки.До сих пор я успешно достигал своей цели, но столкнулся с незначительной проблемой, связанной с сохранением проверенного статуса.
Например, я хочу проверять только те записи, имя которых = Макс.У меня есть текстовое поле в этом текстовом поле. Я вызываю событие изменения текста с помощью запроса типа:
try
{
SqlCommand cmd = null;
SqlConnection con = null; Ranks rank = new Ranks();
con = new SqlConnection(cs.DBcon);
con.Open();
cmd = con.CreateCommand();
cmd.CommandText = "Select * from Records where Name like @Name order by Pno";
cmd.Parameters.AddWithValue("@Name", "%" + FilterByNameTextbox.Text.Trim() + "%");
SqlDataAdapter adapter1 = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
adapter1.Fill(dt);
dataGridView1.DataSource = dt;
Make_fields_Colorful();
}
catch (Exception exception)
{
MessageBox.Show(exception.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Hand);
}
Если я напишу Max в текстовом поле фильтра по имени, он вернет 3 записи с именем, начинающимся с max, используя запрос как я упоминалкод выше.Поэтому я проверяю только 2 записи из 3, используя динамический флажок, до сих пор мой код работает отлично.Теперь я хочу проверить записи, имя которых начинается с Ali, теперь, когда я пишу ali в моем фильтре по текстовому полю name, он будет возвращать строки, имена которых похожи на ali, но здесь возникает проблема, поэтому я удаляю мои предыдущие проверенные записи, поэтому, как бы я могсохранить проверенные записи для строк max и ali:
Код для добавления динамических флажков в каждой строке
DataGridViewCheckBoxColumn checkBoxColumn = new DataGridViewCheckBoxColumn();
checkBoxColumn.Name = "checkBoxColumn";
checkBoxColumn.DataPropertyName = "Report";
checkBoxColumn.HeaderText = "Report";
dataGridView1.Columns.Insert(10, checkBoxColumn);
dataGridView1.RowTemplate.Height = 100;
dataGridView1.Columns[10].Width = 50;
Изображения:
Изображение 1
Изображение 2