1

我目前有一些代码:

Dim InsertSecondCmd As New MySqlCommand("INSERT INTO [modules_access] (module_id, company_id) VALUES (5, " & intCompanyID & ")", thisConnection)
InsertSecondCmd.ExecuteNonQuery()

我可以把它整理一下,然后以某种方式只用一行代码完成整个事情吗?

例如。

ExecuteNonQuery(MySqlCommand("INSERT INTO [modules_access] (module_id, company_id) VALUES (5, " & intCompanyID & ")", thisConnection))

我尝试了一些变体,但找不到有效的变体。欢迎咨询!

4

1 回答 1

4

当然,你可以这样做:

Dim affectedRows As Int32 InsertSecondCmd As New MySqlCommand("INSERT INTO [modules_access] (module_id, company_id) VALUES (5, " & intCompanyID & ")", thisConnection).ExecuteNonQuery()

但我不确定那是什么好处。

最后,这种方法的问题越来越多。连接和命令处理不当,对 SQL 注入开放,几乎不可读。

例如,您的代码如下所示:

Using c As MySqlConnection = new MySqlConnection(connString)
    c.Open();
    Using cmd As MySqlCommand = new MySqlCommand("INSERT INTO [module_access] (`module_id`, `company_id`) VALUES (@module_id, @company_id)", c)
        cmd.Parameters.AddWithValue("@module_id", 5)
        cmd.Parameters.AddWithValue("@company_id", intCompanyID)

        cmd.ExecuteNonQuery()
    End Using
End Using
于 2013-07-24T12:17:19.417 回答