sql >> Database teknologi >  >> RDS >> Mysql

Hvad er den hurtigste måde at indsætte værdier fra datagridview til mysql database

Jeg kan ikke sige, hvor meget hurtigere dette vil være, men der er simple optimeringer til din forespørgsel

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

Brug af parametre giver dig mulighed for at bygge MySqlCommand kun én gang uden for løkken og undgår også det nødvendige arbejde for at sammenkæde strengene. (For ikke at nævne problemet med Sql Injection)

Bemærk, at jeg har fulgt dit tip i sql-teksten, hvor alle dine felter ser ud til at være af typen string(VarChar). Hvis dine felter er af forskellig datatype, skal du justere MySqlDbType-enummet til din korrekte datatype (og konvertere inputværdierne=



  1. SQL-scripts - Findes der det, der svarer til en #define?

  2. Django-forbindelse til postgres af docker-compose

  3. Den mest effektive måde at gemme IP-adresse i MySQL

  4. Hvordan SUBSTRING() virker i MariaDB