sql >> データベース >  >> RDS >> Mysql

datagridviewからmysqlデータベースに値を挿入する最速の方法は何ですか

    これがどれだけ速くなるかはわかりませんが、クエリには簡単な最適化があります

    Dim queryInsert As String = "INSERT INTO tbl_shipdetails (ship_date, " & _
                                 "item_type, item_code, imei1, imei2)" & _
                                 "VALUES(@p1,'@p2,@p3,@p4,@p5)"
    Dim cmd = New  MySqlCommand(queryInsert, Myconnect)
    cmd.Parameters.Add("@p1", MySqlDbType.VarChar)
    cmd.Parameters.Add("@p2", MySqlDbType.VarChar)    
    cmd.Parameters.Add("@p3", MySqlDbType.VarChar)    
    cmd.Parameters.Add("@p4", MySqlDbType.VarChar)    
    cmd.Parameters.Add("@p5", MySqlDbType.VarChar)
    For i As Integer = 0 To DataGridView1.Rows.Count - 1
        cmd.Parameters("@p1").Value = DataGridView1.Rows(i).Cells(1).Value
        cmd.Parameters("@p2").Value = DataGridView1.Rows(i).Cells(2).Value 
        cmd.Parameters("@p3").Value = DataGridView1.Rows(i).Cells(3).Value
        cmd.Parameters("@p4").Value = DataGridView1.Rows(i).Cells(4).Value
        cmd.Parameters("@p5").Value = DataGridView1.Rows(i).Cells(5).Value
        cmd.ExecuteNonQuery()
    Next
    

    パラメータを使用すると、ループの外側でMySqlCommandを1回だけビルドでき、文字列を連結するために必要な作業も回避できます。 (SQLインジェクションの問題は言うまでもありません)

    すべてのフィールドがstring(VarChar)タイプのように見えるSQLテキストのヒントに従っていることに注意してください。フィールドのデータ型が異なる場合は、MySqlDbType列挙型を正しいデータ型に調整する必要があります(入力値を変換します=



    1. MySQLでは、オーバーヘッドとはどういう意味ですか、それについて何が悪いのか、そしてそれを修正する方法は何ですか?

    2. このEXPLAINでキーが使用されていないのはなぜですか?

    3. MySQLの順列

    4. データベースメールアカウントをプロファイルに追加する(T-SQL)