簡體   English   中英

c#CheckedListbox值

[英]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 索引而不是字符串引用。 當然,如果需要訪問多個字段,可以通過簡單的字符串連接來實現。 問題是您需要訪問所需的特定字段。 不是您當前所在的整行。

我希望這有幫助!

幾個參考: DataRowDataRowView

我想你的 values[] 數組不正確。 請參考 MSDN 上的這個例子。

https://msdn.microsoft.com/en-us/library/system.windows.forms.checkedlistbox.checkeditems(v=vs.110).aspx

string temp = ((CheckBox)item).Text;

您傳入的是對象,而不是對象的文本(這似乎是您希望代碼執行的操作)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM