Linq to sql 通过LINQ到SQL的动态表生成。如何将ITable更改为Table?

Linq to sql 通过LINQ到SQL的动态表生成。如何将ITable更改为Table?,linq-to-sql,Linq To Sql,我正在开发一个windows应用程序。我只是想概括所有主窗体的代码。所以我决定用特定的容器创建一个用户控件。我们正在使用LINQtoSQL,我想传递一个表名并获取相应的数据。我有一个BindingSource和一个BindingNavigator以及一个DataGridView。我使用以下代码: Dim t As Type = objDB.GetType() Dim p As PropertyInfo = t.GetProperty(value) Dim table = CType(p.Ge

我正在开发一个windows应用程序。我只是想概括所有主窗体的代码。所以我决定用特定的容器创建一个用户控件。我们正在使用LINQtoSQL,我想传递一个表名并获取相应的数据。我有一个BindingSource和一个BindingNavigator以及一个DataGridView。我使用以下代码:

Dim t As Type = objDB.GetType()

Dim p As PropertyInfo = t.GetProperty(value)

Dim table = CType(p.GetValue(objDB, Nothing), ITable)

dgvMaster.DataSource = table 'attaching the table as datasource to datagrid works

BSMaster.DataSource = table 'trying to attach the datasource to binding source fails
只需找出如何将其绑定到绑定源代码,我就完成了。非常感谢您在这方面的任何想法或帮助

谢谢


Raja

请在填充后检查BSMaster.Count值。 问题似乎与DataGridView显示有关。 该场景可能是由DataGridVIew中的空初始列集引起的
常见的原因是数据源未在设计时分配。

问题是,在分配ITable时,BS Master未获得任何数据。如果我指定了确切的类,它确实工作得很好。对于例如objDB.Categories。这就是为什么我想将ITable更改为Categories表的原因。如果BSMaster不包含任何数据,则会出现这种行为。BindingSource尝试从表中创建一些列,但失败,之后不会再尝试重新创建列。您可以手动创建列,也可以传递要创建的列的类型。