问题标签 [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.

0 投票
1 回答
463 浏览

asp.net - asp.net IDataReader 计数情况

我知道 IDataReader 没有计数选项。而且您无法计算 datareader 中的行数并返回以再次读取它,因为它只会向前移动,这意味着您无法倒回它。我想到的最佳解决方案是执行 select 语句,计算 datareader 中的行数,然后执行另一个 select 语句并对数据执行任何您想做的事情。

这个问题可能已经在这里发布了很多次,但没有人对此给出真正的解决方案。不做第二个选择语句的最佳解决方案是什么?(选择很贵)

谢谢

0 投票
2 回答
162 浏览

database - 如何在 F# 中通过 IDataReader 使用字符串索引?

我是 F# 的新手,并尝试先深入了解,然后再进行更正式的介绍。我有以下代码:

我打算用 yield 语句替换循环体并清理代码。但现在我只是试图通过调试代码并查看数据读取器来确保数据访问正常工作。目前我正在获得一个System.InvalidCastException. 当我在上面注释行指示的点放置一个断点,然后在即时窗口中键入时,reader["name"]我从数据库中获得了一个有效值,所以我知道它正在连接到数据库 ok。但是,如果我尝试将reader["name"](而不是reader.["name"])放入源文件中,我会收到“此值不是函数并且无法应用”消息。

为什么我可以reader["name"]在即时窗口中使用,但不能在我的 fsharp 代码中使用?如何在阅读器中使用字符串索引

更新

按照 Jack P. 的建议,我将代码拆分为单独的行,现在我看到了错误发生的位置:

id具有object {long}根据调试器的类型。

0 投票
1 回答
104 浏览

.net-4.0 - 适用于 Sybase DB 的 .Net 1.1 和 .Net 4.0 中的 IDataReader 问题

我有一个 sybase 数据库,它可以正确获取查询结果,如下所示......

interestOnLoan请注意上面计算字段的方式。

现在,当我在 SQL Advantage 工具中运行此查询时,它运行良好并为我提供了interestOnLoan. 当我使用通过 OleDB 加载此查询的 .Net 1.1 API 运行此查询时,它运行良好...

我的结果集填充正常。

但是当我在 .net 4.0 中执行上述代码时,结果集错误为

“对于 Decimal,值要么太大要么太小。”

它存在问题的值是因为我还通过如下方式interestOnLoan执行了命令...IDataReader

在这里,它在从 dr[i] 读取dataRow[((DataColumn)listCols[i])] = dr[i]问题的地方出错;

观察到i第 th 列不过是interestOnLoan

所以不知何故.Net 4.0 无法读取这个值。它可以正确读取其他十进制值,例如clientPrice.

为什么会出现这种情况......

另外我想问一下,有什么方法可以默认加载DataReaderas Double(而不是Decimal)中的值?

0 投票
1 回答
1310 浏览

asp.net - ExecuteReader 需要一个打开且可用的连接。连接的当前状态是正在连接

我有一个 ASP.NET 网页。它利用了 4 BackgroundWorkers。每个 bw 从数据库中检索一些数据。

连接数据库的代码是:

在构造函数中,this.dbConnection = new OdbcConnection(networkdetails);

每个 bw 都使用上面的代码片段来查询数据库并检索值。代码有时工作得很好。其他时候它会抛出上面给出的异常。

关于我可能做错了什么的任何帮助?

0 投票
2 回答
11480 浏览

c# - How do I use automapper to map a dataset with multiple tables

DISCLAIMER: this is a copy paste from an older stackoverflow post that isn't available anymore, but I have exaclty the same problem, so it seemed appropriate to repost it as it was never answered.

I have a stored procedure that will return 4 result sets (contacts, addresses, email, phones) which is populated into a dataset. I would like to use AutoMapper to populate a complex object.

I have a method that will get data and return a list of contact. After the DataSet is populate, I define the relationships between the tables.

I found many examples where you convert the DataSet (or table) to a reader using the CreateDataReader method and that is what I'm doing here. The method will in fact parse the first table into the object, but will not enumerate through the related tables.

I feel as though I'm missing something in the mapping for the Contact object, but I just can't find a good example to follow.

If I manually populate the contact object and then pass is to my controller, it will properly load the ContactModel object using a direct mapping

Is what I want to do even possible?

0 投票
2 回答
1881 浏览

.net - IDataReader.Dispose() 是否关闭连接?

我继承的典型查询执行模式是这样的:

退出块后是否query.Connection保持打开状态?using

0 投票
1 回答
3062 浏览

c# - 将 AutoMapper 与缺少列的 DataTable 一起使用

我正在使用 AutoMapper 将数据表映射到列表。

在我的场景中,数据表的列可能会根据外部变量而改变。

我可以成功地将数据表映射到具有以下内容的对象:

这一切都很好。但是有一些属性我需要在表中可能存在或不存在的列上转换为整数。

例子:

“HowManyOrders”列可能并不总是存在于表中,那么我该如何检查该列是否存在,如果存在则转换该值?

0 投票
1 回答
3120 浏览

c# - 如何从 LumenWorks(快速 CSV 阅读器)创建带有 IDataReader 的自定义类以在具有多个不同文件版本的同时使用 SqlBulkCopy?

由于内存问题,我决定将 DataTable 替换/转换为 IDataReader。

经过一段时间的谷歌和 MSDN 搜索,我在http://www.michaelbowersox.com/2011/12/22/using-a-custom-idatareader-to-stream-data-into-a-database遇到了这个/Bulk Insert Sql Server 数百万条记录

由于我使用的是 LumenWorks Fast CSV Reader,但我还没有弄清楚如何告诉 CsvReader 让 IDataReader 使用 2 个不同的字段版本。:-( csvReader.FieldCount 是这里的关键,但我不知道如何告诉 CsvReader 使用具有 IDataReader 接口的两个新类中的任何一个。请参阅下面的原始脚本和修改后的脚本......谢谢......

//原始脚本...

//新脚本...

//示例脚本...

0 投票
1 回答
226 浏览

c# - 迷失在泛型类和继承中——有人带我出去吗?

我希望这不是那么复杂。我确实有它的工作,但我想知道这是否是最好的:

我想使用 SQL Bulk Copy 类,更具体地说是采用 IDataReader 的重载。我的数据在几个 List<> 中,所以我需要一个“翻译器”。我找到了一个通过使用扩展方法来做到这一点的方法——我认为非常优雅!它在这里列出:http ://www.differentpla.net/content/2011/01/converting-ienumerablet-idatareader我认为这是一个很好的基础?!

那里显示的代码不完整,缺少一些从未调用过的不必要的重载。我将它们添加为 NotImplementedException。完整的版本可以在最后找到。

您可以通过在 IEnumerable<> 或 List<> 上调用 AsDataReader 方法来使用该类,并将数据中的列数以及用于遍历列的函数传递给它,如下所示:

NodeDB 类有一些字段和一个静态(!?)方法 GetValue,它获取当前迭代的位置(!?)和列,并返回适当的项目:

在类中有一个带有自身实例的静态方法听起来很奇怪,我想知道是否有更好的方法。但更重要的是:我确实有几个类,比如 NodeDB,它们都有自己的特定 GetValues,组织成 List<>,每个类型都有一个 List<>。

我想将它们全部传递给一个通用的批量写入方法。

目前,我通过将不同的列表作为 IEnumberable 传递来做到这一点,然后在逐一比较它们之后将它们转换回原来的状态:

在每种不同的情况下,我也需要处理正确的函数,即重复、重复和乏味 - 有没有办法从传递的 List 派生正确的 Func 参数?

如何更改我的类(从具有抽象 GetValues 的公共类派生)?我认为,所有 List<> 都可以作为 List 给出,并且所有对 GetValues 的调用都会达到它的目标。我试图这样做,但静态方法在基类中不能是抽象的。

或者我可以添加另一个参数,一个 TYPE 可能然后调用 Func 反对它?或者更改 IDataReader 扩展?

正如我所说,我迷路了......感谢您的帮助!拉尔夫

这里是带有所有接口实现的 IEnumerable 的完整 IDataReader 扩展:

0 投票
2 回答
84 浏览

c# - 来自 objComm.ExecuteReader 的 DataReader

我有以下代码,我想知道是否有人知道处理此问题的正确方法。

现在,假设存储过程什么都不返回,有没有办法处理这个问题?