Benim kendi projemde kullandığım metodu ekledim. Ben Excelden okuyup, okuduğumu veritabanına kaydediyorum:
Kod:
Private Sub ExceldenBilgileriAl()
Using p As New ExcelPackage()
If Not String.IsNullOrEmpty(fileDialog.FileName) Then
Dim kacinciSatir As Byte = 1
' Excelden alınan bilginin kaçıncı satırdan başladığını takip etmek için kullandığımız değişken
Using oku As New FileStream(fileDialog.FileName, FileMode.Open)
p.Load(oku)
Dim ws As ExcelWorksheet = p.Workbook.Worksheets(1)
' Form üzerinden değişken değerini alıyoruz. Kaçıncı satırdan itibaren bilgiler balıyor.
kacinciSatir = Convert.ToByte(seKacinciSatir.EditValue)
Dim exceldeSonSatir As Integer = ws.Dimension.[End].Row
' Sütunlardaki değerleri parametreye girelim
Try
Dim ogrenciSql As String = "INSERT INTO ogrenciler (DonemId,KimlikNo,OgrenciNo,Ad,Soyad,Cinsiyet,VeliCep1,VeliCep2,VeliCep3,OkulKodu,OkulAdi,DanismanKodu,DanismanAdi,SinifKodu,DogumGunu) VALUES (@did,@kimno,@ogrno,@ad,@soyad,@cins,@veli1,@veli2,@veli3,@okulkodu,@okuladi,@danismankodu,@danismanadi,@sinifkodu,@dogum)"
cnn = New MySqlConnection(VT.BaglantiCumlesi)
Dim cmd As MySqlCommand
If cnn.State = ConnectionState.Closed OrElse cnn.State = ConnectionState.Broken Then
cnn.Open()
End If
cmd = New MySqlCommand(ogrenciSql, cnn)
For i As Integer = kacinciSatir To exceldeSonSatir
cmd.Parameters.AddWithValue("@did", lueDonemler.EditValue)
cmd.Parameters.AddWithValue("@kimno", ws.Cells(i, 1).Value)
cmd.Parameters.AddWithValue("@ogrno", ws.Cells(i, 2).Value)
cmd.Parameters.AddWithValue("@ad", ws.Cells(i, 3).Value)
cmd.Parameters.AddWithValue("@soyad", ws.Cells(i, 4).Value)
cmd.Parameters.AddWithValue("@cins", ws.Cells(i, 5).Value)
cmd.Parameters.AddWithValue("@veli1", ws.Cells(i, 6).Value)
cmd.Parameters.AddWithValue("@veli2", ws.Cells(i, 7).Value)
cmd.Parameters.AddWithValue("@veli3", ws.Cells(i, 8).Value)
cmd.Parameters.AddWithValue("@danismankodu", ws.Cells(i, 9).Value)
cmd.Parameters.AddWithValue("@danismanadi", ws.Cells(i, 10).Value)
cmd.Parameters.AddWithValue("@okulkodu", ws.Cells(i, 11).Value)
cmd.Parameters.AddWithValue("@okuladi", ws.Cells(i, 12).Value)
cmd.Parameters.AddWithValue("@sinifkodu", ws.Cells(i, 13).Value)
cmd.Parameters.AddWithValue("@dogum", ws.Cells(i, 14).Value)
cmd.ExecuteNonQuery()
cmd.Parameters.Clear()
Next
SonSayfaMesajiYaz()
Catch ex As MySqlException
lg.LogEkle("frmOgrenciler", "ExceldenBilgileriAl", ex.Message, ex.Number, Ortak.Kullanici.KullaniciId)
MessageBox.Show(ex.Message + Environment.NewLine + Environment.NewLine + ex.Number)
Finally
cnn.Close()
cnn.Dispose()
End Try
' FileStream oku döngüsü bitti
End Using
' dosya adı boşmu bitti
End If
End Using
' ExcelPackage
End Sub
C# kodlarını çevirici programlar ile VB.Net'e çevirdim hata olurmu bilemiyorum. Excel'e yazdırdığım kısmı bulamadım ancak şu siteden esinlenmiştim: