Saya tidak tahu seberapa cepat ini, namun ada pengoptimalan sederhana untuk kueri Anda
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
Menggunakan parameter memungkinkan Anda untuk membangun MySqlCommand hanya satu kali di luar loop dan juga menghindari pekerjaan yang diperlukan untuk menggabungkan string. (Belum lagi masalah Sql Injection)
Perhatikan bahwa saya telah mengikuti petunjuk Anda dalam teks sql di mana semua bidang Anda tampaknya bertipe string(VarChar). Jika bidang Anda memiliki tipe data yang berbeda maka Anda harus menyesuaikan enum MySqlDbType ke tipe data yang benar (dan mengonversi nilai input=