2015-11-30 2 views
1

У меня есть программа, которая будет обслуживать приложение для отпуска сотрудника. До сих пор все идет гладко для этого блока кода, за исключением:Что касается SQL-запросов (Обновление записей)

cmd.CommandText = "UPDATE tblEmployee " & _ 
         " SET EMP_PATERNITYCRED=" & Me.txtNumDays.Text & _ 
         ", EMP_LOGINDT='" & Me.dateToday.Value.Date & "'" & _ 
         ", [Reason for Leave]='" & Me.txtReason.Text & "'" & _ 
         " WHERE EMP_LNAME=" & lblLastName.Text 
      cmd.ExecuteNonQuery() 

Намерение Этот блок кода является обновить запись из tblEmployee базы данных, со следующими столбцами перечисленных вниз. Ошибка указывает на cmd.ExecuteNonQuery(), и он говорит No value given for one or more required parameters.

Я лично считаю, что это столбец с именем Reason for Leave, так как он имеет пробелы вместо подчеркиваний. Как вы думаете?

Благодарим за тех, кто мне поможет!

+1

Вам не хватает одинарных кавычек в предложении 'where' для фамилии. –

+0

О, правильно! Я только что заметил это сейчас. Спасибо огромное! –

ответ

0

Вы попробовали backquotes?

", `Reason for Leave` = '" & Me.txtReason.Text & "'" &_ 

Я мало удивлен тем, что [] не работает в mysql.

+0

Я также был удивлен, потому что [] используется в построителе запросов, правильно? Но спасибо! Я тоже попробую. Огромное спасибо! –

0

Для вашего собственного здравомыслия, использовать функцию String.Format():

Dim sql As String = "UPDATE tblEmployee SET EMP_PATERNITYCRED = {0}, EMP_LOGINDT = '{1}', [Reason for Leave] = '{2}' WHERE EMP_LNAME = '{3}'" 

sql = String.Format(sql, Me.txtNumDays.Text, Me.dateToday.Value.Date, Me.txtReason.Text, lblLastName.Text) 
cmd.CommandText = sql 
cmd.ExecuteNonQuery() 

Это делает недостающие одинарные кавычки в вашем OP разумеющееся.

Смежные вопросы