问题标签 [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.
c# - 将字符串转换为 int 时出现 Datareader 错误
我收到编译时错误reader.GetString
,知道为什么吗?
代码:
c# - OleDbException (0x80004005): 未知
我有以下代码(Windows 窗体的一部分),它在我的机器上成功连接到 Excel 文件,但在另一个盒子上却失败了。
使用OleDbDataAdapter
而不是可以重现行为OleDbCommand.ExecuteReader()
。
通过失败,我的意思是在线上发生以下错误dataTable.Load(dataReader);
使用 x86 配置运行/构建程序时,出现以下错误。
使用 AnyCPU/x64 配置运行/构建程序时,我在两台机器上都收到以下错误。
用于测试的 Excel 文件在两台机器上是同一个文件。我已经能够用多个文件(两个.xls
ans .xlsx
)重现该问题。
我尝试了以下方法来解决这个问题。
- 安装“Microsoft.ACE.OLEDB.12.0”提供程序中描述的组件未在本地计算机上注册
- 将项目配置为 x86/x64
- 卸载和重新安装2007 Office System 驱动程序:数据连接组件
- 卸载和重新安装Microsoft Access Database Engine 2010 Redistributable
我可以采取哪些其他步骤来解决或解决此问题?
c# - 如何在新创建的 DB 列上将 Access 列值设置为 0(默认)?C#
所以我已经阅读了多篇关于我的问题的帖子,但我找不到合适的解决方案。
我有一个表单,用户可以在其中向数据库添加自定义列。此列始终为货币类型,货币类型为欧元。
我以为我通过创建这个查询来做到这一点:
在我初始化时,我有一个函数可以将我的数据库值添加到带有阅读器的列表框中,它还将读取的值转换为正确的输出,请参见此处的代码:
但是,当有人使用我的第一个查询代码添加自定义字段时,上述功能不起作用。上面的函数需要数据库中的一个值,由于某种原因,我代码开头的查询代码没有将新添加的列值设置为默认值 0(0,00 欧元)。
我尝试了多种方法,但没有一种方法可以解决问题。
我将查询修改为(除其他外):
(在某处读到 Y 是欧元的货币——不确定是否强硬)
我还尝试在第一个查询之后添加第二个查询以设置其创建列的值:
但这一切都不起作用..任何人都知道如何将自定义创建列的值设置为默认 0 或仅设置为 0(货币 - 欧元)?
提前致谢!
c# - C# OleDbDataReader:参数查询无法检索数据
我正在开发一个从数据库(MS Access)读取用户数据并将信息设置为变量的应用程序。sql 命令需要一个参数来检查数据库中的用户名,但是 OleDbDataReader 显示为空 (userData.HasRows)。
当我删除参数并将 sqlCmd 设置为在数据库中设置名称 ("...WHERE Username = 'Mitchell'";) 时,将进入 while 循环并分配变量。惊人的。所以参数发生了一些事情。
此外,我已经确认在调用此方法之前用户数据已在数据库中,因此应该可以找到它。
c# - 从 Access 数据库中读取字段时出现 IndexOutOfRangeException
我无法将值从 Access 数据库中读取到列表中。值如下所示: 字段称为 EventDistance 值是 77 77 77 77 55 112 45 46
我的代码如下所示:
并且它抛出的 IndexOutOfRanceException 未针对 Event.EventDistance 进行处理。只有8个整数要读入,但我的数据必须有扩展空间。我怎样才能让它只读取整数而不引发索引错误?
c# - 如何使用 C# 方法从 OleDbDataReader 获取结果
如何从方法返回这个????
这对我很重要
感谢
这是我的方法:
这是我的 ExpandoObject()
这是从方法源中读取的:
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);这导致条件表达式异常中的类型不匹配。但这都是双打,还是我错过了什么?!我猜这会以某种方式成为踢球者,但我现在不知所措。
正如您可能猜到的那样,我对编程很陌生,所以请多多包涵。
是什么导致我的代码以它的方式运行?
c# - OleDBCommand.ExecuteReader() 错误访问 2007
我有这个代码:
我多次修改了粗体部分,因为总是给我抛出一个奇怪的异常,比如别名“desc_producto”中的循环引用,我使用我创建的.dll来生成购物票,但是没有办法修复这个例外!你能帮助我吗?顺便说一句,这是数据库中项目的名称。
vb.net - 我的子程序中的某些代码不会执行
我的程序中有一个子程序,如果它们的过期日期已过,它会从我的访问数据库中删除项目。我正在使用 oledbdatareader 查找需要删除的行。我的问题是这个子的大部分都不会执行。我使用了一个消息框告诉我,在我定义了我的数据阅读器之后代码没有运行。
我在许多其他函数和表单中使用了相同的代码,它工作正常,但由于某种原因,在这个 sub 中它没有。谁能看到我的问题?
c# - ADO.net DataReader 被称为 recursivley -> 在新的递归帧中不会重新开始
请想象一下这个方法原型:
调用例如 getChildren(331, reader, "empty", 0);
假设阅读器 (OleDbDataReader) 有这些简化的 4 个条目:
所以现在请看一下这个小的递归方法:
了解此方法的作用并不重要!但是问题来了:
如果第一次进入函数,则 while 循环总共 4 次。仅当阅读器为 331 时才进行操作!如果是 331,则使用不同的参数再次递归调用此函数。
问题: 此 DataReader 不会从索引 [0] 重新开始,但会以某种方式记住它的状态。因此,如果我在第二级阅读器中再次进入此函数,则从它结束的地方开始,在这种情况下从索引 [2] 开始。
如何让 DataReader 从头开始?dataReader 是错误的数据结构吗?
非常感谢您的帮助!