[英]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.