2010-09-25 95 views
0

我有我想要使用For循环来填充的DataGridView:以编程方式填充的DataGridView

Dim serverName As String = SQLServerName + "\" + Instance 
    Dim server As Server = New Server(serverName) 

    Dim Datatable1 As New DataTable 

    For Each database As Database In server.Databases 
     Dim row As DataRow = Datatable1.NewRow 

     row("Database") = database.Name 
     row("Version") = DBVersionCheck(serverName, database.Name) 
     row("Status") = My.Resources.My_Image 
     Datatable1.Rows.Add(row) 
    Next 

    DataGridView1.DataSource = Datatable1 

的DGV的设计与设计师(列,布局等)。 使用上面的DGV不会填充。我为此使用了一个ListView,但我需要一个子项目中的图像,所以已经切换到使用DGV。有什么建议?

+0

我得到“列'数据库'不属于表。”,我是否需要编程创建dataTable中的列? – madlan 2010-09-25 14:02:25

+0

是的 - 你需要添加列 – ChrisF 2010-09-25 14:04:10

回答

3

您需要将列添加到DataTable

我有一些代码(这是C#),但你应该能够将其转换:

var columnSpec = new DataColumn 
        { 
         DataType = string, 
         ColumnName = "Database Name" 
        }; 
this.dataTable.Columns.Add(columnSpec); 

这将增加一个名为“数据库名称”型string的列。

+0

对不起,从内存写入 - 原来的更正。 – madlan 2010-09-25 14:00:37

+0

@madlan - 答案已更新。 – ChrisF 2010-09-25 14:06:56

+0

问题似乎是转换图像:行(“状态”)= My.Resources.My_Image将无法正常工作,我创建了一个新的datacolumn与.DataType = GetType(System.Byte())。 – madlan 2010-09-25 15:05:01