1

私は現在いくつかのコードを持っています:

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

これを片付けて、全体を 1 行のコードにまとめることはできますか?

例えば。

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 に答える