问题标签 [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 回答
1244 浏览

vb.net - 条件表达式中的数据类型不匹配

dr = cmd.ExecuteReader() 中的错误

dr 被声明为 OleDbDataReader

0 投票
1 回答
2229 浏览

ms-access - MS Access“数字”类型对应于哪种 C# 数据类型?

根据http://msdn.microsoft.com/en-us/library/office/aa211091(v=office.11 ​​).aspx ,MS Jet 数据库引擎没有“NUMBER”数据类型;然而,这就是我在我正在查询的表的 MS Access 设计视图中看到的 - 即

我通过查询检索到的第一列的数据类型是“NUMBER”数据类型。

当我尝试将该值转换为 Int32 和 Double 时,我的这段代码都会中断:

为什么它无法转换为字符串、整数或双精度?我应该将其转换为什么?

0 投票
2 回答
559 浏览

sql - 如何抢占“指定的强制转换无效”异常?

在 Web API 应用程序中查询 MS Access 数据库时,如果我尝试将空字符串分配给变量,则会收到“指定的强制转换无效”异常。IOW,当这段代码:

...到达结果集中第二列包含空/空字符串的记录,它会爆炸。

所以,我想我可以像这样在传球时阻止它:

...但它不起作用 - 我仍然收到“指定的演员表无效”异常。

如何安全地检查那里的空字符串/空值并忽略通过结果集的传递,以便获得后续记录?

或者我可以通过更改 SQL 语句以从结果集中排除空/空字符串来排除这种情况?如果是这样,怎么做?查询格式如下:

0 投票
3 回答
156 浏览

c# - 处理查询中非必需的 MS Access 文本字段的最安全实用方法是什么?

在查询 MS Access 时,我了解到(如何抢占“指定强制转换无效”异常?)我必须通过防御性查询 Text(字符串)值可能为空(或者,显然实际上是 null)使用“ IIF(ISNULL(colName),'',colName) ”构造,例如:

我假设这仅对指定为 required == false 的 Text 列是必需的。我的 ASSumption 错了吗 - 我必须对所有非必需的列执行此操作吗?

具体来说,如果我需要对数据类型为 double 的列进行防御性查询,是否可以这样做:

?

或者更好(人们总是希望):是否有一些更干净/不那么突兀的方式来处理不包含每列数据的结果集?

如果它有任何区别,我正在使用 OleDbDataReader 从 .NET 4.5.1 Web API 应用程序查询 MS Access 数据库(新酒皮中的旧抱怨?)

更新

回复:HansUp 的(Reach for the Sky?)建议:“也许从 .Net 方面进行攻击并让代码更适合 Nulls 会更有成效”,这样的方法是否可以做到,或者是有一种更有效/更安全的方法:

?

更新 2

我更改了代码以检查 DBNull,当它是 DBNull 时,将值设置为基于数据类型的通用值(text 为 string.empty,int 为 0,double 为 0.00),但我仍然得到相同的错误消息。

更新 3

我在这一行收到“指定的演员表无效”:

dbp_id 是 Access 表中的 LongInt

从查询返回的数据在该列中包含以下值:

...那么这些值中的任何一个怎么可能无法长时间转换?我应该使用“Convert.ToX()”而不是“(long)”吗?或者...???

0 投票
1 回答
155 浏览

sql - OleDbDataReader 没有给出与 SQL Developer 相同的结果

在我的 oracle db 上的以下查询给出了在 SQL Developer 中运行时看起来很好的结果。

所有行都正确填充。当在我的程序中运行相同的确切查询时,使用OleDbReader.ExecuteReader()某些行包含特定列的空值,而我的 SQL Developer 结果中没有这些行。该列的数据类型是 CLOB。关于为什么有些行有空值而有些行没有,我看不出任何模式。

不知道还有哪些其他信息会有所帮助...

有没有人对可能发生的事情有任何想法?

0 投票
0 回答
252 浏览

oracle - VB.NET OLEDBDataReader - 结果集中的空值(DATETIME)

我是 VB.NET 编程的新手,因此非常感谢您指出示例。

我有一个到 Oracle 11g 数据库的 OleDB 连接。我正在从表中读取单行并尝试填充行对象 (mClockInOutInfo)。我遇到的问题是返回的行中有一个空的 DateTime (timestamp) 列。

当然,我从 mClockInOutInfo.RowDate = dr.GetDateTime(0) 开始(假设 RowDate 列是查询中的第一列)。

我很快发现应该检查空值,所以我在代码中添加了 = If(IsDBNull(dr.GetDateTime(0)), DBNull.value, dr.getDateTime(0))。(我现在使用在此处某处找到的 NullSafeString 函数。但 DateTime 类型没有任何内容。我尝试制作一个,但没有成功。所以我仍然使用我的 datetime 列的 If(IsDbNull(...)) 代码.

我遇到的问题是我收到错误:“指定的演员表无效。” 在评估该陈述时。我已经使用 .GetDataTypeName(0) 方法验证了列类型。它返回 DBTYPE_DBTIMESTAMP。我已经查看了架构信息以验证该列实际上是我正在寻找的信息。据我所知,在评估 if() 语句的 IsDBNull(drRecent.GetDateTime(0)) 部分时会生成错误。我已经通过将语句分解为多行 if 语句来确认这一点: if IsDBNull(dr.GetDateTime(0)) Then ... Else ... End If

我得到了 if IsDBNull(...) 行抛出的相同的转换错误。

因此,我回到 SQL 字符串并在其中包含空数据的列上进行了合并。我收到了同样的演员错误。最后,很沮丧,我更改了 sql 查询以使用 TO_DATE 函数,并使用适当的格式参数输入日期字符串。我仍然收到同样的演员错误。

mClockInOutInfo 中的属性定义为 DateTime。还有其他列以完全相同的方式定义,并且表中有数据的列没有给出任何错误。

当数据库允许 DateTime (Timestamp) 列中的空值时我应该做什么的任何想法?欢迎所有想法。先感谢您。

0 投票
0 回答
164 浏览

c# - OleDbDataReader 检索特定行值 (CSHTML)

我试图以特定顺序从阅读器中提取值。我有许多代表,需要将它们组合到他们的区域中,以便我可以汇总它们。

我有一个到本地 mdb 的连接,暂时可以正常工作。在其他地方,我循环阅读器以获取数据。像这样...

......

但是,我想按顺序将它们拉出来,所以可以说... SouthRep,EastRep,WestRep,NorthRep

所以我需要类似...

我已经考虑过创建一个循环并选择我想要的条目,但必须有一个更简单的方法。

谢谢

0 投票
1 回答
2874 浏览

c# - 如何使 OleDb 代码异步运行?

在尝试进行 Web 下载/阅读时,我已经看到了很多异步示例。但是我找不到 OleDb 的示例或任何东西(或者是否有更好的等价物?),我想使用 C# 5.0 的新的和简化的 Async 和 Await 功能。

这只是我现在如何使用 OleDb 的一个示例:

我确实运行了几个数据读取器,多次应要求运行,并且在新结果显示在表单上之前需要很长时间。另外,我正在使用 OleDb 访问 Access 数据库。

0 投票
2 回答
1924 浏览

c# - 通过 C# 对 Access 数据库进行 LIKE 查询始终返回 COUNT(*) of 0

请查看以下代码:

我总是将计数视为 0 而不是某个整数值。在调试时,我在 MS ACCESS 2013 中执行查询并执行,它给了我正确的结果。我不明白是什么问题。

0 投票
1 回答
145 浏览

c# - 从访问文本框显示 long Int

我想用组合框中选择的客户名称的 ID 填充文本框。我在 customerID 下收到错误说


'System.Data.Oledb.OledbDataReader' 的未知方法 'GetInt32(string)'


这是整个代码的副本