2014-09-27 38 views
0

我創建了一個帶有datagridview的窗體。我將該DGV綁定到由SqlServer CE數據庫中的表構建的數據表。我能夠添加,編輯和刪除記錄並將更改保存到數據庫。爲什麼我的Datagridview不能顯示我綁定到的DataTable的信息?

然後,我將AutoGenerateColumns設置爲False,這樣我就可以用很好的格式設置DGV。首先,我只添加一列:

'/// Set Up DataGridView 
    With dgvMaterials 
     .AutoGenerateColumns = False 
     '.Columns.Add("MaterialName", "Material") 

    End With 
    Dim col As DataGridViewColumn 
    ' 
    col = New DataGridViewColumn 
    With col 
     .Name = "Material" 
     .DataPropertyName = "MaterialName" 
     .Width = 200 

     '.HeaderText = "Material" 
    End With 
    dgvMaterials.Columns.Add(col) 
    dgvMaterials.DataSource = stuff.Materials 

(東西是一類,我做我的SQL的東西的一個實例,材料是DataTable的名字),我必須選中DataPropertyName一個

現在百次,我證實DataTable中有記錄,但它們不會顯示在DGV中。爲什麼?

一如既往地感謝您提供的任何幫助。

+1

難道你只需從'stuff.Materials'中選擇一個項目,沿着'dgvMaterials.DataSource = stuff.Materials.Select(Function(m)m.MaterialName)。行列出的東西。 – 2014-09-27 21:02:27

+0

它是否適用於'AutoGenerateColumns = True'並且不是自己構建列?您可能需要先設置所有列,然後再綁定到一列。 – OneFineDay 2014-09-27 21:43:36

+0

是的,它確實有效 - 但不包含1列。 – MrBill 2014-09-27 21:56:42

回答

0

夥計們,答案很簡單:我把我的列作爲DataGridViewColumn類型,無論出於什麼原因它都必須是DataGridViewTextBoxColumn才能工作。我將它切換出來,現在datagridview像冠軍一樣工作。

相關問題