2013-07-14 77 views
1

我得到的是從DataSet中檢索數據時的空列表框。下面是代碼:如何從DataSet中檢索數據到ListBox?

DataSet dt_product = dBCommand.ExecuteNonQuery("SELECT * FROM PRODUCT"); 

listBx_prod.DataSource=dt_product.Tables[0].Columns[1].ExtendedProperties.Cast<DataRow>().ToList();  

我調試了,我的DataSet成功地從數據庫中檢索數據。我錯在哪裏?

+0

直到我知道你不能對單個列投即ToList().. – Bhavik

+0

'ExecuteNonQuery'回報'int',而不是'DataSet'。 – Dennis

+0

@ Bhavik:我想在數據集的列表框中僅顯示一列。是否有任何其他解決方法來實現此目的? – Sadiq

回答

2

我必須承認,我不知道爲什麼你想讀取第二DataColumnPropertyCollection在你的第一個表DataSet via ExtendedProperties

但既然你提到,你只是想展示在ListBox數據:

listBx_prod.DataSource = dt_product.Tables[0]; 
listBx_prod.DisplayMember = "ProductName"; 
listBx_prod.ValueMember = "ProductId"; 
+0

其實我都是新手。你能告訴我DisplayMember和ValueMember之間的確切區別嗎?因爲在我的情況下,兩者都達到了相同的結果。是否我使用listBx_prod.DisplayMember =「ProductName」;或listBx_prod.ValueMember =「ProductName」; – Sadiq

+0

@Sadiq:'DisplayMember'是應該顯示的屬性,'ValueMember'是應該用於標識項目的屬性。通常你會選擇主鍵,如果它是一個數據庫對象。 –

1

您應該設置DataSourceDataTable並設置ValueMemberDisplayMember

listBox1.DataSource = dt_product.Tables[0]; 
listBox1.ValueMember = "Id"; 
listBox1.DisplayMember = "Name";