Использование параметров OLEDB в .NET при подключении к AS400 / DB2 - PullRequest
3 голосов
/ 25 марта 2010

Я выдернул свои волосы, пытаясь выяснить, что я не могу заставить параметры работать в моем запросе. У меня есть код, написанный на VB.NET, который пытается выполнить запрос к AS / 400. У меня установлен IBM Access для 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)

Я могу заменить @MyParm литералом 5, и он отлично работает. Что мне здесь не хватает? Я делаю это с SQL Server все время, но я впервые пытаюсь сделать это на AS400.

Ответы [ 2 ]

1 голос
/ 25 марта 2010

Просто примечание: Host Integration Server 2006 поддерживает именованные параметры.

1 голос
/ 25 марта 2010

Вы правы, тот же вопрос, что и SQL-запрос AS400 с параметром , который содержит решение.

...