我有这段代码可以从VB中的文本框中的数据更新SQL数据库。我需要使用参数,以防文本包含tic标记,'或引号,“等。这是我所拥有的:dbConn = New SqlConnection("server=.\SQLEXPRESS;Integrated Security=SSPI; database=FATP") dbConn.Open() MyCommand = New SqlCommand("UPDATE SeansMessage SET Message = '" & TicBoxText.Text & _ "'WHERE Number = 1", dbConn) MyDataReader = MyCommand.ExecuteReader() MyDataReader.Close() dbConn.Close()这是我la脚的尝试,目的是根据我在网络上看到的内容来设置参数,对此我不太了解。dbConn = New SqlConnection("server=.\SQLEXPRESS;Integrated Security=SSPI; database=FATP") dbConn.Open() MyCommand = New SqlCommand("UPDATE SeansMessage SET Message = @'" & TicBoxText.Text & _ "'WHERE Number = 1", dbConn) MyDataReader = MyCommand.ExecuteReader() MyDataReader.Close() dbConn.Close()你怎么做到这一点?原因是在运行代码时文本框中是否有'标记,它会崩溃。
3 回答
慕尼黑8549860
TA贡献1818条经验 获得超11个赞
这里有许多改进:
Using dbConn As New SqlConnection("server=.\SQLEXPRESS;Integrated Security=SSPI; database=FATP"), _
MyCommand As SqlCommand("UPDATE SeansMessage SET Message = @Message WHERE Number = 1", dbConn)
'Make sure to use your exact DbType (ie: VarChar vs NVarChar) and size
MyCommand.Parameters.Add("@Message", SqlDbType.VarChar).Value = TicBoxText.Text
dbConn.Open()
MyCommand.ExecuteNonQuery() ' don't open a data reader: just use ExecuteNonQuery
End Using 'Using block will close the connection for you
胡子哥哥
TA贡献1825条经验 获得超6个赞
不喜欢AddWithValue()方法。有时它会猜测参数类型错误(即:日期,varchar与nvarchar),有时,当这种情况发生时,查询将不再与其应有的索引对齐,有时会导致严重的性能问题。
- 3 回答
- 0 关注
- 850 浏览
添加回答
举报
0/150
提交
取消