Запрос на обновление SQLLite Параметр не принимает значение системной строки - PullRequest
1 голос
/ 30 ноября 2011

У меня возникли проблемы с параметризованным запросом SQL Lite.Я не могу заставить параметр SQL Lite принимать строковое значение

Using cmd As SQLiteCommand = pConn.CreateCommand()
    If tblLang = "en" Then
        cmd.CommandText = "UPDATE [AT_Strings] SET [Data] = @tblData + 1 WHERE [RecordID] = @ID AND [language] = @tblLang1"
        Dim tblData As New SQLiteParameter("@tblData")
        Dim ID As New SQLiteParameter("@ID")
        Dim tblLang1 As New SQLiteParameter("@tblLang1")
        cmd.Parameters.Add(dataText)
        cmd.Parameters.Add(ID)
        cmd.Parameters.Add(tblLang)
    Else
         cmd.CommandText = "UPDATE [AT_Strings] SET [Data] = @dataText + 1 WHERE [RecordID] = @ID AND [language] = @tblLang1"
         Dim tblData As New SQLiteParameter("@dataText")
         Dim ID As New SQLiteParameter("@ID")
         Dim tblLang1 As New SQLiteParameter("@tblLang1")
         cmd.Parameters.Add(dataText)
         cmd.Parameters.Add(ID)
         cmd.Parameters.Add(tblLang)
    End If

    cmd.ExecuteNonQuery()
 End Using

Ошибка заключается в следующем ...

Unable to cast object of type 'System.String' to type 'System.Data.SQLite.SQLiteParameter'. 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.InvalidCastException: Unable to cast object of type 'System.String' to type 'System.Data.SQLite.SQLiteParameter'.

Source Error: 

Line 283:  Dim ID As New SQLiteParameter("@ID")

Line 284:  Dim tblLang1 As New SQLiteParameter("@tblLang1")

ERROR on Line 285...

Line 285:  cmd.Parameters.Add(dataText)

1 Ответ

3 голосов
/ 30 ноября 2011

Вот так я решил эту проблему ...

Dim SqlString As String 
SqlString = "UPDATE [AT_Strings] SET [Data] = @Data WHERE [ID] = @ID AND [Language] = @Language"  

Using cmd As New SQLiteCommand(SqlString, pConn)    
    cmd.CommandType = CommandType.Text     
    cmd.Parameters.AddWithValue("Data", dataText)    
    cmd.Parameters.AddWithValue("ID", f4)    
    cmd.Parameters.AddWithValue("Language", tblLang)     

    pConn.Open()    
    cmd.ExecuteNonQuery()    
    pConn.Close() 
End Using 

Надеюсь, это поможет кому-то еще !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...