连接到AS400 / DB2时在.NET中使用OLEDB参数

时间:2010-03-24 21:10:48

标签: .net sql db2 oledb ibm-midrange

我一直在拉我的头发试图弄清楚我的查询无法获取参数。我有用VB.NET编写的代码试图对AS / 400进行查询。我安装了IBM Access for Windows,我可以让查询工作,而不是参数。每次我在查询中包含一个参数(例如@MyParm)它都不起作用。它就像它不会用它应该的值替换参数。这是我的代码:

我收到以下错误: SQL0206:列@MyParm不在指定的表中

这是我的代码:

Dim da As New OleDbDataAdapter
Dim dt As New DataTable

da.SelectCommand = New OleDbCommand
da.SelectCommand.Connection = con

da.SelectCommand.CommandText = "SELECT * FROM MyTable WHERE Col1 = @MyParm"
With da.SelectCommand.Parameters
   .Add("@MyParm", OleDbType.Integer, 9)
   .Item("@MyParm").Value = 5
End With

' I get the error here of course
da.Fill(dt)

我可以用5的字面值替换@MyParm并且它可以正常工作。我在这里错过了什么?我一直使用SQL Server执行此操作,但这是我第一次在AS400上尝试它。

2 个答案:

答案 0 :(得分:1)

你是对的,同样的问题是AS400 SQL query with Parameter,其中包含解决方案。

答案 1 :(得分:1)

注意:Host Integration Server 2006支持命名参数。