如何向Sql CommandText添加值

时间:2016-07-26 05:53:26

标签: sql sql-server vb.net

如今我正在编写板球得分软件,所有细节都保存在数据库中。我想知道在点击“ Wicket ”时如何在数据库中为字段“ W ”添加+1。

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

在此代码中,frmmain.lblbowler.text包含投球手名称。

这段代码是否正确?必须做哪些改变?请善意回答。

1 个答案:

答案 0 :(得分:1)

不要以这种方式构建查询!通常从Windows窗体或网页上的TextBox控件检索输入frmmain.lblbowler.Text。放入该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