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