在 C#/ASP.NET 中存储 SqlDataReader 对象?

发布于 2024-07-11 20:47:01 字数 293 浏览 10 评论 0原文

我目前正在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

北笙凉宸 2024-07-18 20:47:01

您可以使用数据表和 SqlDataAdapter:

using(SqlDataAdapter adap = new SqlDataAdapter(cmd))
{
  adap.fill(myDataTable);
}

return myDataTable;

You can use a datatable and SqlDataAdapter:

using(SqlDataAdapter adap = new SqlDataAdapter(cmd))
{
  adap.fill(myDataTable);
}

return myDataTable;
岁月无声 2024-07-18 20:47:01

通常,结果要么填充到集合中,要么填充到数据表中。 从不必实例化对象并存储它们的角度来看,数据表更容易一些。

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.

臻嫒无言 2024-07-18 20:47:01

您是否考虑过使用 Linq 或像 subsonic 这样的 ORM

Have you thought of using Linq or an ORM like subsonic for this

吻风 2024-07-18 20:47:01

您只需将命令行为设置为 closeconnection 即可。
然后当你调用 r.close 时
底层连接将关闭。

you can just set the commandbehavior to closeconnection.
and then when you call r.close
the underlying connection will close.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文