使用linq Query中的单列填充网格

时间:2016-06-01 11:43:45

标签: vb.net linq datagrid

我希望通过datagrid填充我从linq查询中获取的信息。 datagrid自动生成其列

使用db作为新DataClassesDataContext

        Dim fillGrid = From info In db.tableName
                       Select info.Description
        DataGrid1.DataSource = fillGrid
        DataGrid1.DataBind()
    End Using

此代码生成一个名为" Length"的列。

如果我添加另一列进行选择,那么它会正确生成列,因为列表有 - >描述="" :ID =""

如何让linq用一列生成列名?

1 个答案:

答案 0 :(得分:1)

当您的select不是已知类型时,Linq to sql会创建匿名类型。在您的情况下,它是字符串匿名类型的列表。在.net上绑定仅适用于属性而不适用于字段。所以string的列表的默认属性是用于的Length属性。 取而代之的是,我建议您创建一个具有名为description的字符串属性的类,并选择此类对象:

Public Class StringCollection
    Private _Description As String
    Public Property Description() As String
        Get
            Return _Description
        End Get
        Set(ByVal value As String)
            _Description = value
        End Set
    End Property
End Class

然后进行选择:

 Dim fillGrid = From info In db.tableName
                           Select New StringCollection With {.Description = info.Pershkrimi}