问题标签 [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.
c# - 阅读器关闭异常时调用元数据的尝试无效
我正在使用 Microsoft Practice Enterprice 数据将 WCF 连接到数据库。请注意,并非总是抛出此异常。它发生在 while 语句中。然后,如果我刷新页面(重新提交登录详细信息,与此 WCF 服务通信的 MVC 应用程序),代码执行没有任何问题。有人可以确定为什么 IDataRader 在堆栈执行是在 using 语句中时关闭吗?我的代码是:
数据库连接:
c# - 需要关于优化项目列表初始化的建议
我的一种方法有问题,需要 4-5 分钟来初始化约 17,000 个 poco 对象并用它们填充列表。我试图避免对查询中的数据进行分页,因此需要初始化 ~17,000。我们正在使用 Oracle DB 和 Microsoft.Practices.EnterpriseLibrary 来调用 DB。不确定该信息是否相关,但以防万一。我正在使用 ExecuteReader 方法的 reader 对象来设置 Poco 类的 60 个属性。我不确定为什么要花这么长时间。查询大约需要 3-5 秒来执行。因此,任何关于如何更改代码以加快速度的建议将不胜感激。另外,有人告诉我查询是在 reader.Read() 调用上执行的,而不是在 ExecuteReader() 调用上执行的。我不认为这是正确的,但如果有人知道' 如果是的话,你能告诉我吗?再次感谢。
POCO 类
数据访问和初始化方法
c# - 如何调用返回接口的方法
我正在通过反射调用一个类型的方法,该方法需要几个参数:
我希望目标是 IDataReader,这是该方法将返回的内容,但我显然无法实例化接口的新实例。
c# - SqlCeBulkCopy 的 IDataReader 实现失败
我正在尝试将数据从 .DAT 文件(从 SQL Server 输出)批量加载到 SQL CE 4.0 文件中。我一直在使用 ErikEJ 的 SqlCeBulkCopy 类从 SQL Server 完美加载数据,但从 .DAT 一直是个问题。
我创建了一个实现 IDataReader 以读取 .DAT 的类,因此我可以将读取器传递给 SqlCeBulkCopy.WriteToServer 方法。大多数读者似乎都很好,但我遇到了空值问题;当从 .DAT 文件中读取空值并将其插入到目标表的可为空列中时,将引发异常。
我很想相信我以某种方式错误地实现了 IDataReader 接口。我将值存储在 System.Object 数组中,并且 IsDBNull 方法以这种方式实现:
值得注意的是,我在这里放置了一个断点,并且没有调用该方法。
否则,我的相关方法是:
我得到的异常是带有消息“输入字符串格式不正确”的 FormatException。有人知道我哪里出错了吗?
这是异常的堆栈跟踪:
在 System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) 在 System.Byte.Parse(String s, NumberStyles style, NumberFormatInfo info) 在 System.Convert.ToByte(String value, IFormatProvider provider) 在 System.Data。 SqlServerCe.SqlCeUpdatableRecord.SetClrTypeValue(Int32 ordinal, Object value, String method) at System.Data.SqlServerCe.SqlCeUpdatableRecord.SetValue(Int32 ordinal, Object value) at ErikEJ.SqlCe.SqlCeBulkCopy.WriteToServer(ISqlCeBulkCopyInsertAdapter adapter) at ErikEJ.SqlCe.SqlCeBulkCopy E:\Code\Desktop MySoftware\software\desktop_and_web\MySoftware\MySoftware 中 MySoftware.Modules.Analysis.SqlCeFileConfiguration.SqlCeBulkDataStreamer.CopyFromReader(IDataReader reader, String destinationConnectionString, String tableName) 的 .WriteToServer(IDataReader reader)。Analysis\SqlCeFileConfiguration\SqlCeBulkDataStreamer.cs:MySoftware.Modules.Analysis.Services.SqlCeDataManagerService.InsertData(String connectionString, String tempWorkFolder, TableInfo tableInfo) 中的第 42 行在 E:\Code\Desktop MySoftware\software\desktop_and_web\MySoftware\MySoftware.Analysis \Services\SqlCeDataManagerService.cs:第 742 行
c# - 检查数据库记录映射的空值
如何检查附加代码中的 db null 值?请理解我是一个新的 C# 转换...
这段代码所做的是获取一个 IDataReader 对象并将其转换并映射到一个强类型的对象列表。但是我发现当阅读器中返回空列时,它会完全出错。
转换器
映射器
我只是不太明白键入对象的列在哪里发生,所以我会尝试自己做......但我只是不知道它在哪里。
我知道这可能无济于事,但我得到的错误是:
Unable to cast object of type 'System.DBNull' to type 'System.String'.
它发生在
笔记
如果我用 ISNULL(column, '') 包装查询本身中的列,则不会发生这种情况,但我相信您可以理解这肯定不是解决方案
c# - 阅读器关闭时调用 Read 的尝试无效,base {System.SystemException} = {“阅读器关闭时调用 Depth 的尝试无效。”}
使用存储过程中的数据读取器检索数据时出现此异常。阅读器关闭时调用 Depth 的尝试无效。阅读器关闭时调用 Read 的尝试无效,base {System.SystemException} = {“阅读器关闭时调用 Depth 的尝试无效。”
c# - 从 IDataReader 创建对象
我创建了以下内容来创建具有称为 UserModules 的 UserModule 对象的 ObservableCollection 的用户对象。
我有大约。100000 个用户记录,每个用户最多可以有 10 个模块记录,这需要几分钟才能完成。
这可能意味着从 IDataReader 更改,接受建议。有人可以建议一种更有效的方法吗?
地图用户
地图用户模块
c# - 如何在 C# 中执行多连接 SQL 查询
在 c# 中使用 IDataReader 从数据库中提取与特定业务部门相对应的主机名列表,但无法找出问题所在。我猜测是SQL语句中的参数太多,或者这里的ExecuteReader方法可能不应该使用。我无法在目标数据库中创建 SP,因此只能以其他方式运行查询。任何帮助将不胜感激。
c# - while循环不断返回重复信息
我有一个函数旨在从 SQL 数据库表(称为 ProductProfiles)中获取值并将它们显示在用户可以下载和查看的 .csv 文档中。结果基于下拉列表的选择(称为 ddlClassification)。该函数几乎可以完美运行,但用于将 sql 数据写入 .csv 文件的 while 循环不断重复数据。例如,如果存在 3 个条目(我们将它们称为 A、B 和 C),则 .csv 文件应该只显示 3 个条目。但是,就目前的情况而言,这 3 个条目在 .csv 文件中重复多次,这是不正确的。
我不确定我在结束这个重复问题的功能中缺少什么。
这是功能
这是调用 WriteProductProfile 函数的代码
c# - NUnit:自动映射器.ConvertUsing() 返回具有空属性的 Dto
我正在使用 AutoMapper 从 IDataReader 映射到一个简单的 DTO。
我可以在使用 ForMember 时映射属性,但在使用 ConstructUsing/ConvertUsing 时不能。在这种情况下,我所有的 NUnit 测试都失败了,因为 AutoMapper 返回一个具有空属性的 DTO。有趣的是,这种行为在 MSTest 中不会发生:在 MSTest 下运行测试时,映射有效。
这是代码:
这在 NUnit 和 MSTest 中传递:
这仅在 MSTest 中传递,并在 NUnit 中返回具有 null 属性的 Dto:
MyTestMethod 甚至没有在 NUnit 中调用。
这是 AutoMapper 中的错误吗?在 NUnit 中?两个都?
我不应该将 AutoMapper 用于 IDataReader 映射吗?
提前致谢。