sql >> Databasteknik >  >> RDS >> Mysql

Vad är det snabbaste sättet att infoga värden från datagridview till mysql-databasen

Jag kan inte säga hur mycket snabbare detta kommer att gå, men det finns enkla optimeringar för din fråga

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

Genom att använda parametrar kan du bygga MySqlCommand bara en gång utanför loopen och undviker också det arbete som behövs för att sammanfoga strängarna. (För att inte tala om problemet med Sql Injection)

Lägg märke till att jag har följt ditt tips i sql-texten där alla dina fält verkar vara av string(VarChar)-typ. Om dina fält är av olika datatyp bör du justera MySqlDbType enum till din korrekta datatyp (och konvertera indatavärdena=



  1. Förbättra prestandan för UDF:er med NULL ON NULL INPUT

  2. Välj data från visa tabeller MySQL-fråga

  3. django.db.utils.OperationalError:(2026, 'SSL-anslutningsfel:SSL_CTX_set_tmp_dh misslyckades')

  4. Dynamisk pivottabell i SQL Server