Рейтинг:
20
Richard Deeming
Используйте параметризованный запрос и исправьте синтаксическую ошибку:
Using connection As New OleDbConnection("...")
Using command As New OleDbCommand("SELECT TrainingType, Condensed FROM tblOTrainings WHERE @CJobLevel BETWEEN LowerBound AND UpperBound", connection)
command.Parameters.AddWithValue("@CJobLevel", txtCJobLevel.Text)
Dim table As New DataTable()
Dim da As New OleDbDataAdapter(command)
da.Fill(table)
...
End Using
End Using
Surviving Panda
Привет, ниже приведен мой код с использованием параметров
спицы.Открыть()
КМД = СN.CreateCommand
УМК.CommandText = " SELECT TrainingType, сжатый из tblOTrainings, где @CJobLevel между LowerBound и UpperBound"
УМК.Параметры.AddWithValue ("@CJobLevel", . txtCJobLevel. Text)
УМК.Метод executenonquery()
Дим таблицу в качестве нового объекта DataTable
Dim da как новый OleDbDataAdapter(cmd)
да.Заполнить(табл.)
Для каждого доктора, как datarow в ДТ.Строк
.dgCTraining.Строк.Добавить()
С frmPersonalTraining.dgCTraining.Строк(frmPersonalTraining.dgCTraining.Строк.Количество-1)
Клетки("тренировка").Value = dr ("TrainingType")
.Клеток("лайн").Значение = dr ("конденсированный")
Конец С
Следующий
спицы.Рядом()
Прав ли я, что после строки da.fill(table) я вставил код, который отображал бы результат в datagridview? Он по-прежнему имеет ошибку без значения.
Извините, если я задаю слишком много вопросов.
Dave Kreskowiak
Это может показаться глупым, но вы заменили "LowerBound" и "UpperBound" фактическими значениями или оставили этот текст в этом запросе без какого-либо определения того, что представляют собой "LowerBound" и "UpperBound"?
Richard Deeming
Я предполагал, что это имена столбцов в таблице. :)
Dave Kreskowiak
Поначалу я тоже так думал, но потом от этого стало разить "нубом". Я начал думать, что это работа copy'n'paste какого-то примера где-то.
Surviving Panda
Да, нижняя и верхняя границы-это имена столбцов в моей таблице.
Surviving Panda
Привет, как бы я определил значения для этого? Когда я создавал запрос в Access, он давал ожидаемый результат, возможно, именно поэтому я не понял, что должен также определить их значения.
Dave Kreskowiak
Если LowerBound и UpperBound являются фактическими именами столбцов в одной и той же таблице, запрос будет использовать значения в той же строке, что и вычисляемое значение.
Surviving Panda
Спасибо Ричарду за ответы на мои вопросы. У меня все еще нет большого опыта в использовании базы данных. Надеюсь, я смогу это выяснить. Большое вам спасибо!
Рейтинг:
10
Surviving Panda
Привет, Ричард и Дэйв, просто хочу сообщить вам, что мой код теперь работает. :) Спасибо за ваши ответы!
cn.Open()
cmd = cn.CreateCommand
cmd.CommandText = "SELECT Course, Condensed FROM tblOTrainings WHERE @CJobLevel BETWEEN LowerBound AND UpperBound"
cmd.Parameters.AddWithValue("@CJobLevel", .txtOJobLevel.Text)
Dim table As New DataTable("tblOTrainings")
Dim da As New OleDbDataAdapter(cmd)
da.Fill(table)
.dgOTraining.DataSource = table