У меня есть checkedlistBox
в C #, который я заполняю из sql-сервера.
Мне нужно вставить проверенные элементы при создании новой записи, и мне нужно обновить ранее выбранные элементы определенной записи.
Сначала я пытаюсь прочитать выбранный элемент определенной записи, поэтому я попробовал следующее:
Я сравниваю значение элемента каждого элемента со списком, который я получаю из запроса SQL, если он совпадает, я проверяю элемент.
Поэтому мне нужно использовать что-то вроде значения параметра.
if(checkedListBox1.Items.IndexOf(i).**Value**
string sql = @"select cs.id from[dbo].[Channel_availableSpecs] cas inner join[dbo].[Channel_specs] cs on cas.ChennelSpec_Id = cs.id
where cas.Channel_Id =" + val + "order by cs.id";
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dta = new DataTable();
da.Fill(dta);
foreach (DataRow dr in dta.Rows)
{
for (int i = 0; i < checkedListBox1.Items.Count; i++)
{
if(checkedListBox1.Items.IndexOf(i).**Value** == dr.ToString()) checkedListBox1.SetItemCheckState(i, CheckState.Checked);
}
conn.Close();
}
}
Заполнить Checkedlistbox
public static void FillCheckedListox(CheckedListBox checkedListBox, string query,string displayMember, string valueMember) {
using (SqlConnection con = new SqlConnection(ConnectionString))
{
using (SqlCommand cmd = new SqlCommand(query, con))
{
cmd.CommandType = CommandType.Text;
using (SqlDataAdapter sda = new SqlDataAdapter(cmd))
{
DataTable dt = new DataTable();
sda.Fill(dt);
((ListBox)checkedListBox).DataSource = dt;
((ListBox)checkedListBox).DisplayMember = displayMember;
((ListBox)checkedListBox).ValueMember = valueMember;
}
}
}