2014-01-19 180 views
-5

我該如何結束這個SQL UPDATE語句?調試器告訴我,SQL UPDATE where子句')'

字符串常量必須用雙引號

結束,並在某些時候在那裏,你從交換機是hiighlighting的WHERE子句"', con)

cmd = New SqlCommand("UPDATE PersonsA SET(Members_ID='" & midtxt.Text & "'Gamer_Tag='" & gttxt.Text & "'Screenname='" & sntxt.Text & "'First_Name='" & fntxt.Text & "'Last_Name='" & lntxt.Text & "'DoB='" & dobtxt.Text & "'E_Mail_Address='" & emailtxt.Text & "'Position='" & teamptxt.Text & "'UG_Studio'" & ugptxt.Text & "'Cautions='" & ugctxt.Text & "'Record='" & recordtxt.Text & "'Event_Attendance='" & eventatxt.Text & "'Members_Status='" & memberstatcombo.Text & "'GTA_V_Crew_Member='" & gtavcrewmembercombo.Text & "'Games_Owned='" & gamesownedtxt.Text & "'Rep_Group='" & RepGroupcombo.Text & "'WHERE Members_ID='" & midtxt.Text & "', con) 
+1

添加雙引號單引號之後,並添加逗號項目 – Heslacher

+7

之間。如果你使用參數化查詢這種錯誤是非常不可能的。 – Steve

+0

把''',con)'改成''''「,con)' - 在你的問題中語法高亮可以很容易地識別 – Basic

回答

0

末圖案'" ... "'"' ... '"

1
SqlCommand("UPDATE PersonsA SET(Members_ID='" & midtxt.Text & 
          ^this Parenthesis is not needed 

FOR UPDATE語句正確的語法是像

UPDATE PersonsA 
    SET Members_ID= SomeValue, 
     ColumnName = SomeValue, 
     . 
     . 
     ... and so on... 
WHERE Clause 
2

最終改變

"', con) 

"'", con) 

並給予一試。

+0

不,仍然會導致相同的錯誤,但我認爲這是與我會試試@ M.Ali的回答,我想這可能是我的問題,感謝您的幫助 – user2980316

2

不僅你錯過了最後的雙引號,在SET之前添加了一個錯誤的parenthesys,而且你的UPDATE語法也是錯誤的,因爲你錯過了應該分隔字段的逗號。

切換到參數化查詢將清除了很多東西

cmd = New SqlCommand("UPDATE PersonsA SET [email protected], [email protected], " & _ 
     "[email protected], [email protected], [email protected], [email protected]," & _ 
     "[email protected], [email protected], [email protected], [email protected]," & _ 
     "[email protected], [email protected], [email protected], " & _ 
     "[email protected], [email protected], [email protected]" & _ 
     "WHERE [email protected]", con) 

    cmd.Parameters.AddWithValue("@id",midtxt.Text) 
    .... follow with other parameters .... 
    cmd.ExecuteNonQuery() 

正如你所看到的,使用參數化查詢簡化您的命令文本,並刪除所有醜陋的字符串連接,其中細微的語法錯誤,從視圖中隱藏。
當然,參數化查詢也消除了Sql Injections

一個簡單的回顧,任何可能性大約UPDATE statement

+0

感謝您的回覆,儘管開始的時候確實有點居高臨下,我已經在這裏採用了您的方法展示, m接收到一個相當奇怪的錯誤'Member_Status無法轉換爲數據類型int',它是在字段中的文本,並且SQL列設置爲varchar(35)。爲什麼我在接收到這個錯誤時沒有告訴它把Member_Status當成一個整數? – user2980316

+1

對不起,給了我這個印象,這不是我的意圖,它實際上是一個奇怪的錯誤。你可以在你的問題中添加使用參數的實際代碼嗎? – Steve

+0

另外我剛剛注意到你m用MySql標籤提出了你的問題,但是你使用SqlCommand是一個只用於Sql Server的類。 – Steve