[VB.Net][WinForm] 如何將 datatable 的資料塞到 datagridview 裡
在 WebForm 上,我只要指定 DataSource 後再進行 Bind , DataGrid 就會產生資料以供顯示
但我在 WinForm 上,指定完 DataSource ,卻仍是一片空白,而且中間測了很多東西,也確認 datatable 中是有資料的,可是就是無法顯示
在經過多個條件下的測試,他仍然無法顯示資料
突然就想著,重新手動打造... 咦?欄位,那新增一個隱藏欄位執行,就發現他會被自 Bind 出來了
原來 datagridview 在沒有任何欄位資訊時,塞入 datasource 他並不會有任何的反應
既然知道問題了,那就容易解決了,以下語法是自動將 datatable 的欄位新增到 datagridview 的語法
Public Sub RetrieveAllToDataGridview(ByRef obj As DataGridView) Dim dt As DataTable = RetrieveAll() obj.Columns.Clear() For Each columns As DataColumn In dt.Columns obj.Columns.Add(columns.ColumnName, columns.Caption) obj.Columns(columns.ColumnName).DataPropertyName = columns.ColumnName obj.Columns(columns.ColumnName).ReadOnly = True Next obj.DataSource = dt End Sub
其中 RetrieveAll 函數只是將某張資料表的資料全部讀出並 Fill 到 DataTable 上
透過以上的語法就能自動幫忙產生 datagridview 的欄位
當然你也可以透過新增一個隱藏欄位,這時 datagridview 遇到 datasource 變更時,他就會自動產生 datasource 相對應的欄位
留言
張貼留言