如今我正在编写板球得分软件,所有细节都保存在数据库中。我想知道在点击“ Wicket ”时如何在数据库中为字段“ W ”添加+1。
cmd.CommandText = "UPDATE database.table SET W=W+1 WHERE bowler='" & frmmain.lblbowler.Text & "' "
在此代码中,frmmain.lblbowler.text
包含投球手名称。
这段代码是否正确?必须做哪些改变?请善意回答。
答案 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