【问题标题】:Sql Select direclty from a DataReaderSql 直接从 DataReader 中选择
【发布时间】:2013-12-10 19:02:06
【问题描述】:

我开发了一个需要从数据库读取数据的 C# 应用程序。

如果我在存储数据库的服务器上运行这个应用程序,它很快,但是,如果我通过网络运行这个应用程序,SQL 查询很慢。

我想修改我的程序,以便将第一个响应的请求存储在应用程序内存中,其次能够在内存上执行另一个 SQL 查询(为了不使用网络传输)。

是否有可能在数据阅读器中进行 SQL 查询?

或者我可能需要使用数据集?

【问题讨论】:

  • 可能你需要看看一个叫做 Linq 的东西
  • 让我们稍微澄清一下。什么在 C# 代码中花费了太长时间:执行查询或执行查询并显示查询返回的数据?
  • 与论坛网站不同,我们不使用“谢谢”、“任何帮助表示赞赏”或Stack Overflow 上的签名。请参阅“Should 'Hi', 'thanks,' taglines, and salutations be removed from posts?.
  • 查看“LINQ to Objects”,它允许您进行内存查询。您无需求助于DataSet,这是相当古老的技术。
  • 您希望如何在内存中执行另一个 SQL 查询?那如何避免网络传输?

标签: c# sql .net dataset datareader


【解决方案1】:

是的。 ADO.NET 为您提供了该选项。使用您的数据加载DataTable,如果您有多个表,则加载DataSet。您可以将其存储在本地内存中,您可以查询DataTable 并对行进行排序和过滤,就像真正的 Sql 数据库一样。您可以在特定行上发出插入/更新/删除,并且您可能希望定期刷新数据。您将仅受将数据存储在内存中的机器上的内存量的限制。

【讨论】:

  • 感谢您的回答,我只有一张桌子。所以也许数据集更好,不是吗?我需要在数据集上使用哪种方法进行查询?
  • 你查询DataTable。如果只存在一个表,则不需要整个数据集。 DataSet 为您提供了更多的东西,例如,您甚至可以在表之间建立关系。您可以使用不同的DataViews 对数据进行排序和过滤。使用 ADO.NET 可以对处于断开连接状态的数据执行的操作令人惊叹
  • 好答案,我提出了我的 sql 请求并将其存储在 DataTable 中。接下来,我使用 Linq To DataSet 来查询我的 DataTable !谢谢:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-10
相关资源
最近更新 更多