在休息并重新查看代码后,我发现了错误。请参阅答案。感谢您的帮助。
剩下的问题:
- 为什么它没有在大多数数字上给我一个例外?// 我无法看到结果。我只知道其他人没有例外。
- 为什么 DataSetDesigner 将该整数(数据库)转换为生成的类中的字符串?
我正在使用 Visual Studio 2017 / Oracle DataSet Designer 在我的应用程序中获取代表我的数据库的类。由于 Oracle 不支持 Visual Studio 2017,但我使用 Visual Studio 2015 来生成我的 .xsd 数据集。
使用下面的代码,我收到一条奇怪的异常消息。
For Each numberRow As myOracleDataSet.CustomerTelNumberRow In numberTbl.Select("customerID = " & row.CustomerID)
// Some more code
Next
System.InvalidArgumentException:
Min (551) 必须小于或等于 Range 对象中的 max (-1)。
分离In
我发现的 - 子句,异常发生在DataTable.Select
调用中。
CutomerID
是String-Property
由数据集设计者给定的,并DBNULL
在选择之前进行了检查。如果使用orDataSet.Select
执行,代码可以正常工作。我还检查了 CustomerID 的值,发现当给定. 使用硬编码 250 而不是 row.CustomerID 给了我同样的例外。所以它可能与我表中的数据有关。我能做些什么呢?"1=1"
"CustomerID = CustomerID"
CustomerID is 250
我的 String 语法应该是正确的,因为它适用于其他 ID,并且 .Select-Method 不是我自己生成的。
我在 MSDN support.microsoft.com上发现了几乎相同的异常,但它说它仅适用于 .NET Framework 3.5-based applications
. 我的应用程序正在使用 .NET Framework 4.5.2 。