sql >> Database >  >> RDS >> Mysql

Wat is de snelste manier om waarden van datagridview in mysql-database in te voegen?

Ik kan niet zeggen hoeveel sneller dit zal zijn, maar er zijn eenvoudige optimalisaties voor uw zoekopdracht

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

Door parameters te gebruiken, kunt u de MySqlCommand slechts één keer buiten de lus bouwen en vermijdt u ook het werk dat nodig is om de tekenreeksen samen te voegen. (Om nog maar te zwijgen over het probleem van Sql-injectie)

Merk op dat ik je hint heb gevolgd in de sql-tekst waar al je velden van het type string (VarChar) lijken te zijn. Als uw velden van een ander gegevenstype zijn, moet u de MySqlDbType-enum aanpassen aan uw juiste gegevenstype (en de invoerwaarden converteren=



  1. Waarom werkt mijn databaseback-upscript niet in php?

  2. SQL-fout:ORA-01861:letterlijk komt niet overeen met opmaakreeks 01861

  3. Toepassingen die op Linux draaien verbinden met Amazon Relational Database Services (RDS) voor SQL Server

  4. Converteer varchar-kolom naar datum in mysql op databaseniveau