我希望通过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用一列生成列名?
答案 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}