【发布时间】:2011-09-29 05:04:13
【问题描述】:
我使用typed DataSets 访问数据,通过DataSet Designer 配置它们(大致思路在this 教程中解释)。
对于每个表,首先会自动创建一个GetData() 方法。它返回一个DataTable,与数据库中的基础表具有相同的模式(即列)。如果现在我使用'Add query' 选项创建一个自定义方法,它应该只返回部分数据(比如六列中的三列),自动生成的方法返回的 DataTable 仍然由六列组成,其中三列不包括数据。
这有一个烦人的副作用,当我将这个 DataTable 绑定到 GridView(显然使用 ObjectDataSource)时,这些空列也会出现在 GridView 中,所以我必须手动删除它们。
另一个相关问题是,如果我将来自另一个表的数据添加到相应的SQL-query 列(例如使用内部连接或子查询),相反这些列不会被添加到 GridView,尽管我可以在Boundfield 中手动绑定它们。
因此,如果这里有人尚未完全迁移到实体框架并且可以解释此行为并帮助克服这些问题,我将非常感谢您的回答。提前谢谢你。
更新:
我的期望是找到从数据集设计器在我的 SQL 查询之上创建的 get 方法中获取 DataTable 的方法,这将在其架构中反映此查询的结果。在教程中,他们说GetData() 方法为您创建并填充 DataTable 并将其作为方法的返回值返回。如此直观地为什么不使用匹配的字段创建一个新表。
所以我希望我做错了什么。或者我的期望是错误的,但是有人可以解释我,为什么。
【问题讨论】:
-
@Smudge202:我使用的是 C#
标签: asp.net datatable dataset strongly-typed-dataset dataset-designer