Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jaki jest najszybszy sposób na wstawienie wartości z datagridview do bazy mysql?

Nie jestem w stanie powiedzieć, o ile szybciej to będzie, jednak istnieją proste optymalizacje zapytania

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

Użycie parametrów pozwala na zbudowanie MySqlCommand tylko raz poza pętlą i pozwala uniknąć pracy potrzebnej do łączenia ciągów. (Nie wspominając o problemie z wstrzykiwaniem SQL)

Zauważ, że postępowałem zgodnie z twoją wskazówką w tekście sql, gdzie wszystkie twoje pola wydają się być typu string(VarChar). Jeśli twoje pola mają inny typ danych, powinieneś dostosować wyliczenie MySqlDbType do prawidłowego typu danych (i przekonwertować wartości wejściowe =



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. pip3 instalacja mysql-python nie powiodła się z kodem błędu 1 w /tmp/pip-install-4nev4id4/mysql-python/

  2. Przechowywanie dużego formatu JSON — binarnego lub tekstowego

  3. Odejmowanie jednego wiersza danych od drugiego w SQL

  4. MySQL Wstaw wiersz, przy duplikacie:dodaj sufiks i wstaw ponownie

  5. com.mysql.jdbc.PacketTooBigException java