ASP.Net 控件如何从它们的数据源中读取数据?

Posted

技术标签:

【中文标题】ASP.Net 控件如何从它们的数据源中读取数据?【英文标题】:How do ASP.Net controls read from their data sources? 【发布时间】:2013-05-19 11:16:58 【问题描述】:

我需要以标准 ASP.net 控件都不支持的方式在我的页面上显示信息。为了做到这一点,我创建了自己的控件,并且不得不重现 ASP.Net 表单控件的一些功能——特别是它们绑定到许多不同数据源的能力。

根据文档,控件可以绑定到任何支持 IEnumerable、ICollection 或 IListSource 接口的数据源。现在我知道您可以将控件直接绑定到 SQLDataReader,但我无法确定该类符合哪个接口允许它工作。 IIRC 它实现了 iEnumerable 但用于枚举列,而不是行。

我希望我自己的对象能够使用这些数据源,并且我有办法做到这一点(使用反射来动态访问属性等),但是由于 .Net 框架已经这样做了,我希望有一个对象已经是框架的一部分,我不需要自己动手。问题:

1) SQLDataReader 满足哪些条件才能将其用作 ASP.Net 控件的数据源? 2) 是否有一个类可以逐行迭代允许的 ASP.Net 数据源,避免我自己滚动?

【问题讨论】:

【参考方案1】:

我不知道这是否能准确回答您的问题,但您可以使用 DbDataRecord 类遍历 SqlDataReader(在这种情况下,IEnumerable 遍历行),例如(VB.NET):

For Each rec As Data.Common.DbDataRecord In MyReader
   'access fields by rec(ordinal) or rec(FieldName)
Next

【讨论】:

以上是关于ASP.Net 控件如何从它们的数据源中读取数据?的主要内容,如果未能解决你的问题,请参考以下文章

asp.net中如何输出数据?

asp.net如何输出数据?

asp.net 2.0中GridView控件的怪怪问题

asp.net如何从数据库读取一个字段的值然后赋值给一个参数

如何从 excel 中读取数据并推入 asp.net 中的数组?

如何使用 asp.net 从客户端读取 ms-access 数据库文件