2016-07-26 54 views
3

現在我正在編寫一個板球評分軟件,所有的細節都保存在數據庫中。我想知道如何在點擊「Wicket」時在數據庫中向「W W」字段添加+1。如何給Sql CommandText添加一個值

cmd.CommandText = "UPDATE database.table SET W=W+1 WHERE bowler='" & frmmain.lblbowler.Text & "' " 

在此代碼中frmmain.lblbowler.text包含圓頂硬禮帽的名稱。

此編碼是否正確?必須做什麼改變?請善待回答。

+0

的代碼看起來是正確的。你有錯誤嗎? – Madhivanan

+0

我們不知道數據庫的結構,但我認爲它是正確的。你又有什麼問題?只需檢查關於連接到SQL數據庫的查詢或建議? – DangeMask

+0

來這裏問問我們你的代碼是否正確是不合適的。您需要運行代碼,如果運行正常,那麼您知道這是正確的,只有當您不在此處發佈問題並向我們提供所有相關信息時錯誤消息。 – jmcilhinney

回答

1

永遠不要以這種方式構建查詢!輸入frmmain.lblbowler.Text通常從Windows窗體或網頁上的TextBox控件中檢索。放入該TextBox控件的任何內容都將放入frmmain.lblbowler.Text並添加到您的SQL字符串中。這種情況會導致黑客用惡意代碼來替換該字符串。在最壞的情況下,你可以完全控制你的電腦。

而不是動態構建一個字符串,如代碼所示,使用參數。

放入參數中的任何內容都將被視爲字段數據,而不是SQL語句的一部分,這會使您的應用程序更安全。

請嘗試以下

cmd.CommandText = "UPDATE database.table SET W=W+1 WHERE bowler = @bowler" 

command.Parameters.Add("@bowler", SqlDbType.NVarChar) 
command.Parameters("@bowler").Value = frmmain.lblbowler.Text