[英]c# CheckedListbox values
当我想将值放入从选中列表框中选择的数组中时。 然后说:
messagebox.show(values[0]);
它说: System.Data.DataRowView
这是我当前的代码:
string[] itemArr = new string[clbTables.CheckedItems.Count];
int counter = 0;
foreach (object item in this.clbTables.CheckedItems)
{
string temp = Convert.ToString(item);
itemArr[counter] = temp;
counter++;
}
MetroMessageBox.Show(this, itemArr[0].ToString());
我在这里做错了什么>?
编辑 ::
clbTables.DataSource = sqlDisplayContent.connectDataTable("SELECT ('Tafelnr: '+ CONVERT(varchar,tafelnr)+' Zitplaatsen: '+ CONVERT(varchar,zitPlaatsen)) AS dispValue,tafelnr FROM tabel");
clbTables.DisplayMember = "dispValue";
clbTables.ValueMember = "tafelnr";
class sqlDisplayContent
{
public static DataTable connectDataTable(string query)
{
SqlCommand comm= sqlCrud.returnSqlCommand(query);
SqlDataAdapter sda = new SqlDataAdapter(comm);
DataTable dt = new DataTable();
sda.Fill(dt);
return dt;
}
}
Thankss
问题是:
Convert.ToString(item);
将简单地调用对象的 ToString() 方法并存储它,在这种情况下,它为您提供对象的类型。 在本例中,类型为 System.Data.DataRowView。 我建议您使用以下方法访问所需行中的特定字段:
((DataRowView)item).Row["FieldName"].ToString();
反而。 您将需要用您想要的列名称替换“FieldName”。 此外,您可以使用 int 索引而不是字符串引用。 当然,如果需要访问多个字段,可以通过简单的字符串连接来实现。 问题是您需要访问所需的特定字段。 不是您当前所在的整行。
我希望这有帮助!
几个参考: DataRow , DataRowView
我想你的 values[] 数组不正确。 请参考 MSDN 上的这个例子。
string temp = ((CheckBox)item).Text;
您传入的是对象,而不是对象的文本(这似乎是您希望代码执行的操作)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.