簡體   English   中英

插入語句上的SQL錯誤

[英]Sql error on insert statement

我正在使用gridviews行更新將已編輯的字段添加到表中進行監視。 如下所示,除了一個值之外,其他所有內容似乎都可以正常工作。

   For i As Integer = 0 To colnum

        If e.OldValues(i).ToString() <> e.NewValues(i).ToString() Then
            Dim uid As Integer = Convert.ToInt32(strUID)

            Dim UpC As OleDbCommand = New OleDbCommand("INSERT INTO tblAud (TN, FN, tID, OldValue, UserID) VALUES ('" + tN + "', '" + fn + "'," + tID + ", '"+ oldValue + "'," + uid + ")", con)

            UpC.ExecuteNonQuery()

        End If
    Next

如果我在文本框中顯示userid,則顯示id很好,如果我在sql中代替它鍵入數字,則它可以正常工作。 如果我取出用戶ID,SQL也可以工作,但是在打開時我得到一個錯誤“輸入字符串格式不正確”。 同樣,所有內容都兩次添加到數據庫中,為什么會這樣?

在單獨的變量中創建SQL插入字符串。 然后,您可以在監視窗口中查看它,看看發生了什么。

就像是...

Dim SQl as String = 'INSERT INTO tblAud (TN, FN, tID, OldValue, UserID) VALUES ('" + tN + "', '" + fn + "'," + tID + ", '"+ oldValue + "'," + uid + ")"'

輸入的字符串格式不正確。

通常與轉換相關。 由於您是將字符串轉換為數字,因此這很可能是罪魁禍首。 您可以嘗試使用Int32.TryParse之類的方法來驗證數字並在無法解析時顯示錯誤消息。 請注意,在空字符串或null上的Convert.ToInt32也會產生此錯誤消息。

兩次都添加到數據庫的所有內容可能是因為您實際上e.OldValues(i)在INSERT查詢中使用e.OldValues(i) ,而是使用了其他一些名為oldValue變量。 沒有更多的代碼示例很難說,但是最好的選擇是學習調試工具並觀察正在發生的事情。

通過將id添加到文本框,然后在sql語句上使用Textbox.text使其工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM