Я работаю в c # приложении Windows, заполняющем запись с сервера sql в представление сетки данных, с возможностью динамического флажка в каждой строке.я хочу выбрать выбранные строки для какой-либо цели через флажок этой конкретной строки.до сих пор я успешно достигаю своей цели.но я сталкиваюсь с незначительной проблемой, связанной с сохранением проверенного состояния, например, я хочу проверять только те записи, у которых Name = Max, у меня есть текстовое поле в этом текстовом поле, я вызываю текстовое событие chnage, например Query
Код для фильтрапо имени:
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);
}
если я напишу Макс в фильтре по текстовому полю имени, он вернет 3 записи с именем, начинающимся с макс, используя аналогичный запрос, как я упоминал выше.поэтому я проверяю только 2 записи из 3, используя динамический флажок, до сих пор мой код работает отлично.Теперь я хочу проверить записи, имя которых начинается с Али, теперь, когда я пишу Али в моем фильтре по текстовому полю имени, он будет возвращать строки, где имя, как Али, но проблема возникает здесь, он удалит мои предыдущие проверенные записи, так как я смог бысохранить проверенные записи для строк 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;