2015-01-31 3 views
0

Извините заранее, Im новой для Vb,VB Access Update Несоответствие типов данных

Im создавая небольшое приложение для назначения в качестве викторины MCQ, Im используя ту же форму, но использовать функцию [nextques] перейти к следующему вопрос и использование [ответ] для обновления ответа пользователя на базу данных (доступ).

Я ранее использовал SQL Server, и он работает хорошо, но из-за того, что мне нужно запустить приложение на компьютере школы, где они не позволят мне что-либо устанавливать, я понятия не имею, а потом решил использовать доступ, поскольку экспортировать и включить его в файл отладки.

Ive просматривает некоторые темы, а также некоторые изменения, однако проблема сохраняется. Я установил [input] в качестве целого числа, я поставил параметр на него, но он все еще не работает.

Код ошибки: Данные несоответствие типов в выражении критериев

Public Function answer(ans As Integer) 
    Try 
     con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=mom.mdb;" 
     con.Open() 
     cmd.Connection = con 
     ' Update the answer 1234 (as abcd) according to id in lblnum.text 
     Dim updatecmd As String = "UPDATE question SET [input] = @ans WHERE id = '" & lblnum.Text & "'" 

     cmd.Parameters.AddWithValue("@ans", ans) 
     cmd.CommandText = updatecmd 
     updatecmd = cmd.ExecuteNonQuery() 
     con.Close() 

     'Proceed to next question by calling Function NextQues 
     nextques() 

    Catch ex As Exception 
     MsgBox(ex.Message) 
    End Try 
    Return 0 
End Function 

Я попробовал также сделать это, как это, однако, другая ошибка показывает: COM-объект, который был отделен от его основного RCW не может быть использована

Public Function answer(ans As Integer) 
    Dim countid As Integer = 1 
    Try 
     con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=mom.mdb;" 
     con.Open() 
     cmd.Connection = con 

     Dim updatecmd As String = "UPDATE question SET [input] = @ans WHERE id = @countid" 

     cmd.Parameters.AddWithValue("@countid", countid) 
     cmd.Parameters.AddWithValue("@ans", ans) 
     cmd.CommandText = updatecmd 
     updatecmd = cmd.ExecuteNonQuery() 

     countid = countid + 1 
     con.Close() 



     'Proceed to next question by calling Function NextQues 
     nextques() 

    Catch ex As Exception 
     MsgBox(ex.Message) 
    End Try 
    Return 0 
End Function 

ответ

0

изменение этой линии

Dim updatecmd As String = "UPDATE question SET [input] = @ans WHERE id = '" & lblnum.Text & "'" 

в

Dim updatecmd As String = "UPDATE question SET [input] = @ans WHERE id = " & lblnum.Text 
+0

Целочисленные значения в инструкции sql не имеют двойных кавычек вокруг них. Либо одиночная цитата, ни ничего. Не пробовали свой код, но я думаю, что одна цитата будет работать нормально. –

+0

Спасибо, это действительно помогает мне, хотя я столкнулся с другими ошибками, но большинство из них вызвано этой проблемой. Haha thanks – user3224361

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