问题标签 [idatareader]
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.
.net - 如何模拟 ExecuteReader 方法?
我是新手moq
并设置了模拟,所以我可以在一点帮助下做。如何模拟ExecuteReader()
using Moq
?
更新
我有下面的 ExecuteReader 代码
这是一个模型
下面是我想在单元测试中模拟的模拟数据
一些人建议IDataReader apporoch 是否适合它,我该如何实现?我如何为这段代码编写单元测试用例
c# - 如何使用数据阅读器将可为空的日期时间值转换为字符串?
我正在nullable datetime
使用IDataReader
界面读回一个。到目前为止,我之前的专栏文章按预期工作。
除了["Implementation End Timestamp"]
我尝试读回可为空的日期时间的这一列,将其转换为字符串并将其分配给名为Implementation_End_String
.
所以这就是我尝试过的。首先读回DateTime?
检查 null 的值,然后如果不为 null 则尝试转换 toString()。
但是由于它们是“字符串和日期时间之间没有显式转换?”,因此不允许此分配:
我想我需要获取value
DateTime 来调用 toString() 。
问题:
如何将回读DateTime?
值转换为字符串类型?
c# - 如何从具有多个表的 IDataReader 中检索值
我一直在尝试从IDataReader
最近获取值,但无法从我查询的第二个表中获取数据。有人可以帮我找到一种方法来获取它们。这是我到目前为止所拥有的:
因此,您如何获得SUM(value) into SumVol
我创建的第二个 SQL 命令public double SumVol { get; set; }
?
wcf - 如何在 C# 中将 IDataReader 转换为 Stream
在我的 WCF 服务中,我正在使用Command.ExecuteReader()
方法从 SQL 服务器检索数据。数据大小非常大(大约 1+ GB)并且通过 netTcp 绑定将此数据传输到客户端。
我打算在 WCF 中实现流模式而不是缓冲模式。任何人都可以将我指向任何文章或文件来做同样的事情。
简而言之,我的目标是将 IDataReader 转换为将传输到客户端和客户端的流对象,希望将此流转换回数据集/数据表或任何可以与 Grid 绑定的东西。
我无法将 IdataReader 转换为 IEnumerable,因为数据来自 SP,并且输出集中的列数不断变化(我不想在代码中添加列数限制)。
最终,将在数据集上完成从 WCF 服务到客户端应用程序的最终通信。如果任何解决方案,如将数据集转换为流,将其发送到客户端并在客户端,将流转换回数据集也将解决我的问题。
c# - 映射时 AutoMapper.Data 错误
我正在使用 automapper v4.1.1 和 automapper.data1.0.0.beta 1。我有控制台应用程序,我的映射代码如下所示:
我的数据库调用代码和映射看起来像
当我运行此代码时,我收到错误:
未处理的异常:System.InvalidCastException:指定的转换无效。在 DynamicCreate(IDataRecord ) 在 AutoMapper.Data.DataReaderMapper.d__10.MoveNext() 在 System.Linq.Enumerable.d__94
1.MoveNext() at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable
1 源)
任何想法我做错了什么?
干杯
伊斯梅尔
c# - 如何将 IDataReader 对象添加到 List在 C# 中?
如何创建 n 个IDataReader
对象并将其添加到 a List<IDataReader>
?
automapper - Automapper 无法从 IDataReader 正确映射到字符串
我正在使用automapper
从IDataReader
. 只要我用它来映射 fromIDataReader
到DTOs
就没有问题,但是在我添加了映射之后string
,它就无法按预期工作。看一下我为演示该问题而编写的以下示例代码:
在这一行string value = mapper.Map<string>(reader);
中,我希望从 中获取string
第一列的实际值IDataReader
,而不是得到"System.Data.SqlClient.SqlDataReader"
. 现在真正奇怪的是,当我.ForMember(dest => dest.Name, options => options.MapFrom(src => src["Name"]));
从上面的代码中删除这一行时,映射将按预期工作。对我来说,这似乎是一个错误。如何优雅地解决这个问题,以便我将拥有我的DTOs
和的映射string
?
c# - IDataReader 实现中的索引值问题
我已经使用 IDataReader 实现了一个类,作为使用 SqlBulkCopy 的项目的一部分。我在这里发布了一些相关代码
使用 SqlBulkCopy 和 IDataReader 的代码片段
运行 WriteToServer 方法时,我注意到第一次调用 GetValue() 时索引值为 1,并且索引的最终值比列数小一。由于这个问题,批量加载最终会跳过一列。
我无法找到为什么 GetValue() 中的索引不将值从 1 到列数。实际上,该值应该从 0 开始,并且比列数少一。如果有人帮我找到原因,请告诉我。
c# - AutoMapper 和 IDataReader
我想将数据映射IDateReader
到某个类,但不能简单地做到这一点。我写了以下代码:
UPD:我尝试使用 Nuget 中的 Automapper.Data 但它依赖于 NETStandard.Library 但我使用 .NET Framework 4.5 但这种方式对我不利,因为我必须为每一列描述映射规则。是否可以避免描述所有这些规则?
c# - 关闭 IDataReader 时执行超时
我正在从 SQL Server 检索大量数据。一切正常,但是当我尝试在using语句中关闭 IDataReader
我得到:执行超时已过期。在操作完成之前超时时间已过或服务器没有响应。
使用类似rdr = null会更好吗?还是有另一种更好的解决方案如何关闭 IDataReader?