问题标签 [oledbdatareader]

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 投票
2 回答
1264 浏览

c# - 将字符串转换为 int 时出现 Datareader 错误

我收到编译时错误reader.GetString,知道为什么吗?

代码:

在此处输入图像描述

0 投票
1 回答
6631 浏览

c# - OleDbException (0x80004005): 未知

我有以下代码(Windows 窗体的一部分),它在我的机器上成功连接到 Excel 文件,但在另一个盒子上却失败了。

使用OleDbDataAdapter而不是可以重现行为OleDbCommand.ExecuteReader()

通过失败,我的意思是在线上发生以下错误dataTable.Load(dataReader);

使用 x86 配置运行/构建程序时,出现以下错误。

使用 AnyCPU/x64 配置运行/构建程序时,我在两台机器上都收到以下错误。

用于测试的 Excel 文件在两台机器上是同一个文件。我已经能够用多个文件(两个.xlsans .xlsx)重现该问题。

我尝试了以下方法来解决这个问题。

我可以采取哪些其他步骤来解决或解决此问题?

0 投票
1 回答
1538 浏览

c# - 如何在新创建的 DB 列上将 Access 列值设置为 0(默认)?C#

所以我已经阅读了多篇关于我的问题的帖子,但我找不到合适的解决方案。

我有一个表单,用户可以在其中向数据库添加自定义列。此列始终为货币类型,货币类型为欧元。

我以为我通过创建这个查询来做到这一点:

在我初始化时,我有一个函数可以将我的数据库值添加到带有阅读器的列表框中,它还将读取的值转换为正确的输出,请参见此处的代码:

但是,当有人使用我的第一个查询代码添加自定义字段时,上述功能不起作用。上面的函数需要数据库中的一个值,由于某种原因,我代码开头的查询代码没有将新添加的列值设置为默认值 0(0,00 欧元)。

我尝试了多种方法,但没有一种方法可以解决问题。

我将查询修改为(除其他外):

(在某处读到 Y 是欧元的货币——不确定是否强硬)

我还尝试在第一个查询之后添加第二个查询以设置其创建列的值:

但这一切都不起作用..任何人都知道如何将自定义创建列的值设置为默认 0 或仅设置为 0(货币 - 欧元)?

提前致谢!

0 投票
2 回答
483 浏览

c# - C# OleDbDataReader:参数查询无法检索数据

我正在开发一个从数据库(MS Access)读取用户数据并将信息设置为变量的应用程序。sql 命令需要一个参数来检查数据库中的用户名,但是 OleDbDataReader 显示为空 (userData.HasRows)。

当我删除参数并将 sqlCmd 设置为在数据库中设置名称 ("...WHERE Username = 'Mitchell'";) 时,将进入 while 循环并分配变量。惊人的。所以参数发生了一些事情。

此外,我已经确认在调用此方法之前用户数据已在数据库中,因此应该可以找到它。

0 投票
2 回答
465 浏览

c# - 从 Access 数据库中读取字段时出现 IndexOutOfRangeException

我无法将值从 Access 数据库中读取到列表中。值如下所示: 字段称为 EventDistance 值是 77 77 77 77 55 112 45 46

我的代码如下所示:

并且它抛出的 IndexOutOfRanceException 未针对 Event.EventDistance 进行处理。只有8个整数要读入,但我的数据必须有扩展空间。我怎样才能让它只读取整数而不引发索引错误?

0 投票
1 回答
440 浏览

c# - 如何使用 C# 方法从 OleDbDataReader 获取结果

如何从方法返回这个????

这对我很重要

感谢

这是我的方法:

这是我的 ExpandoObject()

这是从方法源中读取的:

0 投票
1 回答
173 浏览

c# - Datareader 包含看似随机数量的行,尽管 Select 语句标准

我已经进行了广泛的搜索,但大多数 Datareader 问题/答案对都涉及越过第一行、不返回任何内容、使用 datareader 获取单个值等。没有什么比我现在遇到的更重要了。

需要明确的是,这是我夜校的作业,尽管只是其中的一小部分。

该函数的大小为 int;该表有两个 colmun:col1 和 col2,其中 col1 将索引值保存为 double,col2 保存随机生成的 double。table 是工作簿中的excel工作表,不知道是否相关。

表已使用由 ADO 命令对象执行的插入语句填充,没有问题。

现在,datareader 对象并没有向我提供查询中由 size/@size 指定的行数(因为它在本例中扮演索引/UID 的双重角色),而是获取看似随机的行数。我说看似,因为数字似乎确实固定为“大小”的值(例如,size = 10 -> datareader 在 .executeReader() 之后包含 3 行;size = 2 -> datareader 包含 113 行;size = 5 -> 446 行)。

在调试时,我跟踪查询的@size 参数仍然是 10.0,我无法确定 reader.Read() 何时/为什么变为 False。

我还将查询字符串中的参数替换为文字(5.0);这导致条件表达式异常中的类型不匹配。但这都是双打,还是我错过了什么?!我猜这会以某种方式成为踢球者,但我现在不知所措。

正如您可能猜到的那样,我对编程很陌生,所以请多多包涵。

是什么导致我的代码以它的方式运行?

0 投票
1 回答
154 浏览

c# - OleDBCommand.ExecuteReader() 错误访问 2007

我有这个代码:

我多次修改了粗体部分,因为总是给我抛出一个奇怪的异常,比如别名“desc_producto”中的循环引用,我使用我创建的.dll来生成购物票,但是没有办法修复这个例外!你能帮助我吗?顺便说一句,这是数据库中项目的名称。

0 投票
0 回答
58 浏览

vb.net - 我的子程序中的某些代码不会执行

我的程序中有一个子程序,如果它们的过期日期已过,它会从我的访问数据库中删除项目。我正在使用 oledbdatareader 查找需要删除的行。我的问题是这个子的大部分都不会执行。我使用了一个消息框告诉我,在我定义了我的数据阅读器之后代码没有运行。

我在许多其他函数和表单中使用了相同的代码,它工作正常,但由于某种原因,在这个 sub 中它没有。谁能看到我的问题?

0 投票
1 回答
215 浏览

c# - ADO.net DataReader 被称为 recursivley -> 在新的递归帧中不会重新开始

请想象一下这个方法原型:

调用例如 getChildren(331, reader, "empty", 0);

假设阅读器 (OleDbDataReader) 有这些简化的 4 个条目:

所以现在请看一下这个小的递归方法:

了解此方法的作用并不重要!但是问题来了:

如果第一次进入函数,则 while 循环总共 4 次。仅当阅读器为 331 时才进行操作!如果是 331,则使用不同的参数再次递归调用此函数。

问题: 此 DataReader 不会从索引 [0] 重新开始,但会以某种方式记住它的状态。因此,如果我在第二级阅读器中再次进入此函数,则从它结束的地方开始,在这种情况下从索引 [2] 开始。

如何让 DataReader 从头开始​​?dataReader 是错误的数据结构吗?

非常感谢您的帮助!