将SqlDataReader绑定到下拉列表 - EntLib 5.0

时间:2010-08-19 15:02:03

标签: asp.net enterprise-library

我正在使用EntLib 5将应用程序更新到VS 2010.在应用程序中,有许多实例,其中下拉列表绑定到SqlDataReader。但是,在绑定之前,我使用HasRows属性来查看DataReader是否为空。由于EntLib 5.0中的ExecuteReader方法返回IDataReader,为了做同样的事情,我需要将IDataReader转换为RefCountingDataReader,然后将InnerReader属性转换为SqlDataReader。

Using rdr As SqlDataReader = CType(CType(db.ExecuteReader("spname"), RefCountingDataReader).InnerReader, SqlDataReader)

我在网上发现了这种解决方法,并且已经在很多地方(包括SO)解决了这个问题。

但是,另一种方法是将IDataReader加载到DataTable中,检查行计数,然后将其绑定到下拉列表。哪个更好?或者另一种选择是否最佳?

很抱歉这么久就被抽出来了。任何建议都很棒。

1 个答案:

答案 0 :(得分:0)

如果使用IDataReader填充随后绑定到下拉列表的内容,则将花费不多的时间进行该转换,然后每当需要查看或调试该代码时,都可以节省大量时间试图弄清到底是怎么回事。

因此,尽管我不一定要将其放入DataTable中,但会将其放入某些内容中。我个人建议将其放入匿名对象或嵌套类(仅在使用它的类中可见)。