为了账号安全,请及时绑定邮箱和手机立即绑定

如何在VB中的SQL命令中使用参数“ @”

如何在VB中的SQL命令中使用参数“ @”

翻阅古今 2019-12-06 09:33:00
我有这段代码可以从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


查看完整回答
反对 回复 2019-12-06
?
胡子哥哥

TA贡献1825条经验 获得超6个赞

不喜欢AddWithValue()方法。有时它会猜测参数类型错误(即:日期,varchar与nvarchar),有时,当这种情况发生时,查询将不再与其应有的索引对齐,有时会导致严重的性能问题。

查看完整回答
反对 回复 2019-12-06
  • 3 回答
  • 0 关注
  • 794 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信