我还在学习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();
答案 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()'没有被类重写。