问题标签 [datareader]
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.
vb.net - 根据 DataReader 数据填充对象数组
我不确定如何正确表达我的问题,但我想实现这样的目标。
我有一个名为 Products 的课程
在我的页后代码中,我从 SQL 命令中检索数据并将其放入数据读取器对象中。
我如何能够声明该类,以便我的 datareader 中的每一行实际上都是所述类的实例?
例如:
当我这样做时,我收到一个错误“对象引用未设置为对象的实例。
我对这个很困惑。非常感谢任何提示。谢谢。
asp.net - 当返回一定数量的记录时,SqlHelper.ExecuteReader 结果变化和意外
注意:您可能不需要阅读整篇文章就知道出了什么问题……如果您愿意,可以跳到关于 3 个场景的部分。如果您想了解有关我如何尝试实现此功能以及发生错误的位置的背景信息,请仅阅读开头。
首先,我试图检索Clients
存储在CRM_Clients
表中的给定callerId
.
SelectLiveClientsForCaller
我使用该方法从我的控制器中检索客户端。static Instance
然后通过DataProvider 类中的方法将消息传递给 DAL :
我的DataProvider
类是一个抽象类,它概述了所有SqlDataProvider
可用的方法:
在子类SqlDataProvider
中,该SelectLiveClientsForCaller
方法实际上被处理并调用SqlHelper.ExecuteReader
存储过程CRM_Clients_SelectLiveForCaller
:
最后是存储过程CRM_Clients_SelectLiveForCaller
返回给定的所有未删除的客户端callerid
。
然后这应该回到线路并从控制器返回结果......
到目前为止,我注意到了 3 个场景
如果存储过程没有返回记录(通过 sql server mgmt studio 执行),则在调用方法序列时
reader.Read()
返回 false 并完全跳过它。如果从存储过程中返回了 1 条记录(通过 sql server mgmt studio 执行),则在调用方法序列时
reader.Read()
返回true但枚举结果会给出一条消息,说IEnumerable 返回没有结果如果从存储过程返回2条记录(通过sql server mgmt studio执行),调用方法序列时
reader.Read()
返回true但枚举结果仅返回1条记录而不是2条
谁能解释为什么我在每种情况下都得到这些结果?
如果您需要更多信息,请询问,我会尽快更新。
谢谢,
马特
.net - 通过 DataReader 迭代两次
我需要通过 DataReader 迭代两次。有没有办法在不使用 DataSet 且不运行两次查询的情况下做到这一点?顺便说一句,我正在使用 C#。
谢谢
sql - DataReader.GetString() 通过列名
这样做让我想哭,但我似乎无法弄清楚如何通过列名使用类型特定的检索方法,而不是这种方式。请告诉我有更好的方法。这专门针对 DB2,但如果可能的话,我希望该解决方案也适用于 MS Sql
mysql - vb.net 中的数据阅读器
请帮忙,我如何制作一个相当于这个for循环的while循环。这样我就可以从 mysql 数据库表中的一行读取并将其显示在 vb.net 的组合框中。
我使用此代码,但如果行中添加了 3 个或更多项目,它绝对没有用:
我想从 Drug_type 行读取所有数据请帮助,谢谢
asp.net-mvc - 允许更改 DataLoadOptions 的随机 DataReader 错误和特定于线程的 DataContext
我的 .NET MVC 项目已经到了对多个用户进行测试的阶段,我收到了与 Linq2Sql DataReader 问题相关的看似随机的错误(来自站点中的任何屏幕),例如:
“阅读器关闭时调用 FieldCount 的尝试无效。” 和
'ExecuteReader 需要一个开放且可用的连接。连接的当前状态是关闭的。
如果双击链接或浏览器中的多个选项卡或同时刷新不同浏览器时,这些错误在单用户测试期间出现的频率也较低。
我想知道这些问题是否归结为 DataContext 线程问题。
目前,我正在使用存储库方法,每个业务流程都有单独的存储库。每个存储库类在其构造函数中启动一个 DataContext 实例,存储库中的大多数方法都使用该实例。
然而,一些方法正在更新 DataLoadOptions 以强制预先加载视图数据,因此这些方法创建了它们自己的 DataContext 实例。
此外,在某些屏幕上,还会显示来自多个业务对象的信息,因此单个请求中可能涉及 2 或 3 个存储库。因此,每个请求可能会创建许多单独的 DataContext 实例。
我尝试在必要时使用 DataLoadOptions 并在查询结果上应用 ToList() 来强制执行急切加载方法,以确保预先加载所有内容(而不是等到视图呈现) - 所以每个 DataContext 应该只打开一个相当短的时间。
由于错误似乎与重用相同 DataContext(s) 的多个线程有关,我正在考虑按照 Rick Strahl 的线程特定 DataContextFactory ( http://www.west-wind.com ) 为每个请求实现单个 DataContext /weblog/posts/246222.aspx)或更简单的“工作数据存储单元”方法,如史蒂夫桑德森的示例(http://blog.stevensanderson.com/2007/11/29/linq-to-sql-the-multi -层故事/)。
但是接下来需要解决 DataLoadOptions 的问题。我可以创建其他特定于线程的 DataContext,但这似乎偏离了我对每个请求使用单个 DataContext 的目标。因此,我正在考虑重用相同的 DataContext 但暂时更改某些方法的 LoadOptions ,如 Kevin Watkin 的示例(http://www.mrkwatkins.co.uk/Blog/2010/05/)
或废弃标准 DataLoadOptions 方法Roger Jennings 在 Visual Studio 杂志 ( http://visualstudiomagazine.com/Articles/2007/11/01/Optimize-LINQ-to-SQL-Performance.aspx?页=3 )
所以我的问题是有没有人遇到过类似的随机 DataReader 问题,你是如何解决它们的,我是否有可能通过实施我链接到的那些解决方案来解决问题?
与往常一样,时间很紧——所以如果问题实际上出在其他地方,我不想花时间实施解决方案。任何帮助将不胜感激!
PS。恐怕这是一个相当高级的问题,我没有包含任何具体的代码示例,因为我不确定问题到底出在哪里。
c# - 带参数的数据读取器;
我目前正在使用 DataSet 处理 MySQL 数据库。问题是它使用了大量内存(正如我在网上的某个地方发现的那样,它使用了几乎 4 倍的内存,而不是使用 DataReader 时)。我在想的是制作一个将 DataReader 用于 SQL SELECT 命令的函数。
我目前正在考虑的是(示例):
但我觉得这是一种错误的方式。首先,我没有使用参数。第二件事是它看起来有点脏。任何人都可以请提出一些建议。
datareader - 阅读器关闭时调用 FieldCount 的尝试无效
当我尝试对从数据库接收的数据执行 dataReader.Read 时,会发生上述错误。我知道那里有两行,所以它不是因为实际上没有数据存在。
可能是导致问题的 CommandBehavior.CloseConnection 吗?有人告诉我你必须在 ExecuteReader 之后立即执行此操作?它是否正确?
提前感谢您的帮助。
克莱尔
c# - 如何将 DataSet a 转换为 DataReader?
如何将 DataSet 转换为 DataReader?
c# - 将 SQL 通过管道传输到文件
任何想法如何管道...的结果
使用从 DbCommand.ExecuteReader() 返回的 DbDataReader 到文件?