检索选定的checkedlistbox

时间:2014-02-18 14:29:23

标签: c# winforms

我还在学习C#和winform,但我似乎找不到解决问题的方法。问题是每当我在我的sql生成的checkedlistbox中选择项目并按下button2事件时它不会显示实际数据,它只显示" System.Data.DataRowView"我在这里遗漏的是代码..

private void button2_Click(object sender, EventArgs e)
{          

    int counter = checkedListBox1.SelectedItems.Count;
    List<string> selecteditems = new List<string>();
    for (int i = 0; i < counter; i++)
    {
        selecteditems.Add(checkedListBox1.SelectedItems[i].ToString());
    }
    MessageBox.Show(selecteditems[0]);

这里生成了checkedlistbox代码。

        con.Open();
        SqlCommand cmd = new SqlCommand("Select * from tbl_members ORDER BY Position", con);
        SqlDataAdapter adapter = new SqlDataAdapter(cmd);
        SqlDataReader reader = cmd.ExecuteReader();
        DataTable dt = new DataTable();
        dt.Columns.Add("FullName", typeof(string));
        dt.Load(reader);

        DataSet ds = new DataSet();
        adapter.Fill(ds);
        checkedListBox1.DataSource = ds.Tables[0];
        checkedListBox1.DisplayMember = "FullName";
        checkedListBox1.ValueMember = "FullName";

        checkedListBox1.Enabled = true;
        checkedListBox1.Refresh();
        count = Convert.ToInt32(numericUpDown1.Value);
        con.Close();

3 个答案:

答案 0 :(得分:0)

尝试将button2_Click中的for循环替换为:

foreach (DataRowView rowView in checkedListBox1.CheckedItems) 
{
    selecteditems.Add(rowView["FullName"].ToString());
}

答案 1 :(得分:0)

两者都有

 MessageBox.Show(checkedListBox1.CheckedItems[0].ToString());

 MessageBox.Show(checkedListBox1.SelectedItems[0].ToString());

根据您的需要使用它们我认为您正在寻找第一个

答案 2 :(得分:0)

尝试使用Convert.ToString(checkedListBox1.SelectedItems[i])代替.ToString()

.ToString()通常在字符串中返回变量的类名,如果`.ToString()'没有被类重写。