问题标签 [sqldatareader]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 如何在 C# 中使用 SqlDataReader 获取行数
我的问题是如何使用SqlDataReader
C# 获取查询返回的行数。我已经看到了一些关于此的答案,但没有一个明确定义,除了一个声明使用Read()
方法执行 while 循环并增加计数器的答案。
我的问题是我试图填充一个多维数组,第一行是列标题名称,之后的每一行都是行数据。
我知道我可以将内容转储到 List 控件中而不用担心,但是为了我自己的个人启迪,我还想在选择时将数据拉入和拉出数组并以不同的格式显示。
所以我认为我不能执行Read()
然后递增 ++ 的方式,因为这意味着我必须打开Read()
然后Read()
再次打开才能获取行数和列数据。
只是我正在谈论的一个小例子:
然后一个 for 循环遍历列并弹出
c# - 在 n 层中保持 SqlDataReader 打开
我有一个抽象 SqlCommand 的 ExecuteNonQuery() 和 ExecuteReader() 的数据库类。由于使用块包装了 Sqlconnection 和 SqlCommand,调用 CustomExecuteReader() 后 SqlDataReader 被关闭,因此我无法在业务层读取 SqlReaderResultSet。代码如下。谢谢大家的反馈。
c# - ADO.Net DataReader 超时问题
我正在使用 ADO.Net + C# + VSTS 2008 + ADO.Net 连接到 SQL Server 2008 Enterprise。我使用的几乎与此处提到的模式/示例相同——使用 ADO.Net DataReader 逐个条目(行)检索数据。
http://msdn.microsoft.com/en-us/library/haa3afyz.aspx
我的问题是,如果我在此示例中设置 SqlCommand 超时,1. 我认为超时适用于我们可以用作最大值来检索一个特定行的时间,而不是整个数据逐项输入的总超时环形?
顺便说一句:循环我的意思是,
2. 这个超时只与从数据库中检索数据条目所需的时间有关,而这个超时与我们处理每个条目的时间无关(例如,如果我们将超时设置为 20 秒,如果它需要 1秒从数据库中检索一个数据条目,我的应用程序逻辑需要 30 秒来操作数据条目,永远不会发生超时)。
正确理解?
.net - SqlDataReader.Read() 总是返回 false
我有以下情况:
所以,如果reader
包含有效的结果和HasRows == true
,那么reader.Read()
应该返回 true,对吗?
好吧,它不适合我。我不知道发生了什么,因为这Hydrate(out entity, reader);
条线永远不会被击中。
有人可以帮我理解吗?
谢谢!
c# - 没有结果返回给读者,但相同的查询通过 SQL Management Studio 工作
我在使用一些全文搜索查询时遇到了奇怪的行为,尤其是那些包含多个单词的查询。这些在通过 Management Studio 执行时工作正常,但在从代码调用时不返回任何结果。我做了一个 SQL 跟踪来查看从我的应用程序发送了哪些命令,并且在从 Management Studio 执行时会出现完全相同的命令,但在使用 ExecuteReader 方法从我的应用程序调用时没有结果。
这个电话:
将返回我的应用程序和 Management Studio 的数据,同时执行以下命令:
仅在从 Management Studio 执行时返回数据。我直接从跟踪日志中复制/粘贴了这些查询。
在代码方面,我使用的是企业库,但总的来说我的数据库调用非常简单:
在第二种情况下,由于某种原因,dataReader.HasRows 为 false,但同样,当从 Management Studio 执行这些查询时,它们都会返回一些数据。
我认为这可能是由于返回了许多行(第二个查询返回了更大的结果集),但随后成功地测试了单个单词搜索并返回了更多行。
任何想法为什么 DataReader 的行为与简单的 Management Studio 查询执行不同,我们将不胜感激。
谢谢,
安东宁
sqldatareader - 与实现 IDatareader 的阅读器相比,使用 SQLDataReader 的优势?
如果我使用 SQL Server >= 2005,使用 SQLDataReader 与仅实现 IDatareader 的阅读器相比有什么优势?
SQLDatareader 是否只是有更多功能可供选择,还是使用 SQLDatareader 可以提高性能?
任何讨论此问题的文章将不胜感激。
谢谢!
克里斯
c# - 与此命令关联的必须先关闭的 DataReader
我收到以下错误;
“已经有一个打开的 DataReader 与此命令关联,必须先关闭它。”
是因为我在 foreach 循环中使用了阅读器吗?或者问题可能是什么?问候 BK
asp.net - VB.net / C# 不要在客户端部分引用 sqlreader 那么在哪里?
假设我有一个包含 5 个文本框的表单,我需要从数据库中提取一些数据,然后使用该数据设置这 5 个文本框。
所以假设我有 3 个基本层:
default.aspx 页面背后的代码
联系 DAL 的 BLL 类
和数据访问层 (DAL)
但是我听说过 default.aspx 页面不应该知道 sqldatareader,实际上您可能不想将 sqlclient 命名空间添加到 default.aspx 代码隐藏页面。
所以我曾经做过这样的事情:
然后 BLL 将简单地调用 DAL 以调用 SQL Server 中的存储过程并执行 CommandObject.ExecuteReader,将结果传递回 BLL,然后 BLL 将其发送到 default.aspx 的代码隐藏页面。
如果这没有意义,我可以提供完整的源代码。我的问题是,如果 default.aspx 实际上声明并知道 SQL 数据读取器是不好的,那么更好的方法是什么?我应该使用什么数据类型来避免在我的接口代码中使用 sqldatareader?
vb.net - 使用 FlexGrid 填充数据时 DataTable 和 SqlDataReader 之间的性能问题
当我尝试使用 VB.NET 将数据填充到 FlexGrid 中时,DataTable 和 SqlDataReader 之间哪个更快?
c# - SqlDataReader,一个 firehose 游标 - 没有缓冲?
所以我知道 SqlDataReader 非常快,你不知道你会得到多少行,它一次只为每一行分配内存。因此,如果我有一百万行小行(比如 4 到 32 个字节),每行读取意味着往返服务器?没有缓冲发生对吗?
如果我通过 SQL Native Client 使用 ODBC,我可以设置一个适当大的行缓冲区,以便每次往返获取 512 行。当消费者读取第 0 行时,我读取 512 行然后返回第 0 行,接下来的 511 次读取是内存访问,第 513 次读取是新的往返。
对我来说,这应该更快(并且不必只转发),但是它也取决于结果集如何在服务器上实现。在后一种情况下,结果集必须在我开始通过网络获取之前完成,但对于我不熟悉的 SqlDataReader 和 TDS 可能不是这种情况(?)。任何意见表示赞赏。