在 C#/ASP.NET 中存储 SqlDataReader 对象?
我目前正在 ASP.NET (3.5) 应用程序中编写一个 C# 类来处理所有数据库查询。 其中一些方法可以对数据库进行选择查询。 在该方法内部,我只需使用 SqlDataReader r = command.ExecuteReader();
来获取数据。
我现在希望该方法返回 r ,但是当我关闭数据库连接时,数据读取器将关闭并且该对象不再包含任何内容。 考虑将所有内容放入字符串数组中,但如果我的数据库中混合了整数和文本字段,这是不切实际的。 是否有一种简单(“预制”)的方法将数据存储在某个对象中以返回?
I'm currently writing a C#-class in my ASP.NET (3.5) application to handle all database-queries. Some of the methods are there to make a select-query to the database. Inside the method i simply have a SqlDataReader r = command.ExecuteReader();
to fetch the data.
I now want r
to be returned by the method, but when i close the database-connection, the datareader closes and the object contains nothing anymore. Thought of putting everything into a string-array, but this is unpractical if i have mixed integer and text-fields in my database. Is there an easy ("premade") way of storing the data in some object to return?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您可以使用数据表和 SqlDataAdapter:
You can use a datatable and SqlDataAdapter:
通常,结果要么填充到集合中,要么填充到数据表中。 从不必实例化对象并存储它们的角度来看,数据表更容易一些。
Typically, the results are either stuffed into a collection or a datatable. Datatables are a little easier from the perspective of not having to instantiate objects and storing them.
您是否考虑过使用 Linq 或像 subsonic 这样的 ORM
Have you thought of using Linq or an ORM like subsonic for this
您只需将命令行为设置为 closeconnection 即可。
然后当你调用 r.close 时
底层连接将关闭。
you can just set the commandbehavior to closeconnection.
and then when you call r.close
the underlying connection will close.