我的这个SQL Insert语句有什么问题?

时间:2016-11-30 19:39:52

标签: sql .net sql-server vb.net

我正在尝试将记录添加到我的表中,但是在尝试这样做之后我得到了一个例外。我能够成功打开连接,(我的第一个消息框显示),但之后我得到了异常。这是我的代码:

Private Sub btnUpdateInfo_Click(sender As Object, e As EventArgs) Handles btnUpdateInfo.Click
    Dim con As New SqlConnection
    Dim cmd As New SqlCommand
    con = New SqlConnection("Data Source=localhost\SQLEXPRESS;Initial Catalog=CISDB;Integrated Security=SSPI;")
    Try
        cmd.CommandText = "INSERT INTO customers (FirstName,LastName) VALUES (txtFirstName.Text, txtLastName.Text)"
        cmd.Connection = con
        con.Open()
        MsgBox("Connection Open ! ")
        cmd.ExecuteNonQuery()
        MsgBox("Record inserted")
        con.Close()
    Catch ex As Exception
        MsgBox("Error!")
    End Try
End Sub

2 个答案:

答案 0 :(得分:1)

对于未来的读者 - Sql参数将为您和您的同事节省大量时间。

Private Sub btnUpdateInfo_Click(sender As Object, e As EventArgs) Handles btnUpdateInfo.Click
    Dim connString = "Data Source=localhost\SQLEXPRESS;Initial Catalog=CISDB;Integrated Security=SSPI;"
    Using connection As New SqlConnection(connString)
        Using command As New SqlCommand(connection)
            command.CommandText = "INSERT INTO customers (FirstName,LastName) VALUES (@FirstName, @Lastname)"
            Dim params As SqlParameter() =
            {
                New SqlParameter With { .ParameterName = "@FirstName", .SqlDbType.VarChar, .Value = txtFirstName.Text },
                New SqlParameter With { .ParameterName = "@LastName", .SqlDbType.VarChar, .Value = txtLastName.Text },
            }
            command.Parameters.AddRange(params)
            connection.Open() 
            command.ExecuteNonQuery()
            ' Inserted
        End Using
    End Using
End Sub 

同样适用于try.. catch(正如@Plutonix在评论中注意到的那样) - 如果你能得到真实的"例外,您会更快地找到原因和解决方案

答案 1 :(得分:0)

您需要查看异常消息(ex.Message)以查看问题所在...如果您遇到类似于多部分标识符的错误,请尝试使用此查询字符串而不是当前查询字符串进行快速测试。

    cmd.CommandText = "INSERT INTO customers (FirstName,LastName) VALUES ('" & txtFirstName.Text & "', '" & txtLastName.Text & "')"

如前所述检查参数化查询

相关问题