使用VB的多个SQL语句

时间:2014-04-28 21:00:11

标签: sql vb.net

我有以下代码,我试图触发多个SQL语句。

我是SQL新手,有人能用正确的语法帮助我吗?

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click

    Dim con As SqlConnection = New SqlConnection("server=barry-laptop\SQLEXPRESS; database=Test; integrated security=yes")
    Dim cmd As SqlCommand = New SqlCommand("CREATE TABLE " + TextBox2.Text + " " + "(myId INTEGER PRIMARY KEY," + "myName CHAR(50), myAddress CHAR(255), myBalance FLOAT)", con)
    Dim cmd2 As SqlCommand = New SqlCommand("Update Tarrifs Set Name='" & TextBox2.Text & "', con")

    con.Open()
    cmd.ExecuteNonQuery()
    cmd2.ExecuteNonQuery()
    con.Close()

    End Sub

任何帮助表示感谢。

谢谢,

1 个答案:

答案 0 :(得分:0)

VB.NET中的字符串连接运算符是&符号(&) 您也可以使用+符号但不推荐使用它,因为当操作数是模糊的时候它可能会导致副作用。

说,你可以只使用一个SqlCommand将两个命令文本一起传递,用分号分隔。

另请注意,您应该尽可能使用参数化查询,
唉,第一个查询无法参数化,因为您无法使用参数来表达表名。因此,请务必在使用之前检查此TextBox2的内容。

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    Using con  = New SqlConnection(........)
        Using cmd = New SqlCommand("CREATE TABLE " & TextBox2.Text & _
                    " (myId INTEGER PRIMARY KEY, myName CHAR(50), myAddress CHAR(255), " & _
                    " myBalance FLOAT);Update Tarrifs Set Name=@name", con)
             con.Open()
             cmd.Parameters.AddWithValue("@name", TextBox2.Text)
            cmd.ExecuteNonQuery()
        End Using
    End Using
End Sub

另一个好的做法是在处理像SqlConnection和SqlCommand这样的Disposable对象时应用Using statement。这将确保正确关闭连接以及处理连接和命令