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

我有这段代码可以从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()

你怎么做到这一点?原因是在运行代码时文本框中是否有'标记,它会崩溃。


翻阅古今
浏览 801回答 3
3回答

慕尼黑8549860

这里有许多改进: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 ExecuteNonQueryEnd Using 'Using block will close the connection for you

胡子哥哥

不喜欢AddWithValue()方法。有时它会猜测参数类型错误(即:日期,varchar与nvarchar),有时,当这种情况发生时,查询将不再与其应有的索引对齐,有时会导致严重的性能问题。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

SQL Server