在vb.net中查询 - 良好的做​​法

时间:2014-07-08 23:09:53

标签: vb.net

我想知道查询哪种方式更好,更安全,更有效。以及是否存在一些重大差异。发送两个代码示例。我需要添加,修改或删除的内容吗?随意表达您的意见。

第一种方式:

     Try
        con.Close()
        con.Open()

        Dim sqlQuery As String = "INSERT INTO tblPerson(ID, Name,Email,GenderID) VALUES(@ID, @Name,@Email,@GenderID)"
        com = New SqlCommand(sqlQuery, con)

        com.Parameters.AddWithValue("@ID", CInt(txtID.Text))
        com.Parameters.AddWithValue("@Name", CStr(txtName.Text))
        com.Parameters.AddWithValue("@Email", CStr(txtEmail.Text))
        com.Parameters.AddWithValue("@GenderID", CInt(txtGender.Text))

        com.ExecuteNonQuery()
        com.Dispose()

    Catch ex As Exception

        MessageBox.Show(ex.Message)
        con.Close()
    Finally
        con.Close()

    End Try

和第二:

    con.Close()
    con.Open()

    exe = "basicInsert"
    Dim startTransaction = con.BeginTransaction

    Try
        com = New SqlCommand("EXECUTE " & exe & " '" & txtID.EditValue & "','" & txtName.EditValue & "','" & txtEmail.EditValue & "','" & txtGender.EditValue & "'", con)

        com.Transaction = startTransaction

        com.ExecuteNonQuery()
        com.dispose()

        startTransaction.Commit()

    Catch ex As Exception
        startTransaction.Rollback()
        MessageBox.Show(ex.Message, ex.GetType.ToString)

    End Try

1 个答案:

答案 0 :(得分:2)

几乎总是使用第一个选项。第二个选项很容易导致语法错误,并让您对SQL注入开放。