Daha önce SQL Server üzerinden Excel Aktarımını paylaşmıştım.Fakat Microsoft un azizliğine gelipte
bu işlemi SQL Server 64 BIT sürümlerinde yapılamadığını çünkü Jet OLEDB provider ı desteklemediğini
görünce ufak bir .NET programcığıyla bu işlemi nasıl yapılabileceğini paylaşayım istedim.Belli olmaz bigün lazım olur belki 😉
Hemen V.Studio programını açıp Yeni Proje Windows Forms açıyoruz ve Dilide VB.NET seçelim(tercihen C# la da yapabilirsiniz)
Formunuzun üzerine bir tane Combobox,bir adet te buton ekliyoruz..
Sonrasında Butonumuzu çift tıkladıktan sonra Butonumuzun Click event ine şunları yazıyoruz
Bu arada excel içerisindeki verileri atmak için SQL tarafında Exceldekiyle aynı başlıklara sahip tablomuzu açalım…
3 farklı excelimizi var ve Combobox ın içerisine şunları koyuyorum
Computer,
Software,
Hardware
Bunlar SQL e atacağımız Excel dosyalarının isimleri ve SQL de üç ayrıda tablo oluşturuyorum
TBLComputer,TBLSoftware,TBLHardware
Ve Button1_Click eventinin altına şu kodları yazıyorum…
Dim ds As New DataSet
Dim filename As String
If Me.ComboBox1.Text = “Computer” Then
filename = “C:\Bilgisayar.xls”
ElseIf Me.ComboBox1.Text = “Software” Then
filename = “C:\Software.xls”
Else
filename = “C:\Hardware.xls”
End If
Dim MyConnection As System.Data.OleDb.OleDbConnection
MyConnection = Nothing
Try
Dim dsex As New DataSet
Dim MyCommand As System.Data.OleDb.OleDbDataAdapter
MyConnection = New System.Data.OleDb.OleDbConnection(“provider=Microsoft.Jet.OLEDB.4.0; data source='” & filename & ” ‘; ” & “Extended Properties=Excel 8.0;”)
MyCommand = New System.Data.OleDb.OleDbDataAdapter(“Select * from [Sheet1$]”, MyConnection)
MyCommand.Fill(dsex)
MyConnection.Close()
Dim cnn As New System.Data.SqlClient.SqlConnection
cnn.ConnectionString = “Data Source=FSM01;Initial Catalog=Gurcan;Integrated Security=SSPI;User ID=sa;Password=****;”
For Each rw As DataRow In dsex.Tables(0).Rows
Dim com As New System.Data.SqlClient.SqlCommand
Dim sql As String
If Me.ComboBox1.Text = “Computer” Then
sql = “INSERT INTO TBLComputer(Marka,Islemci,Anakart,Harddisk) values(‘” & rw(0) & “‘,'” & rw(1) & “‘,'” & rw(2) & “‘,'” & rw(3) & “‘,'” & rw(4) & “‘)”
ElseIf Me.ComboBox1.Text = “Software” Then
sql = “INSERT INTO TBLSoftware(Urun,ISBN,Tur,Fiyat,Lisans_Tur) values(‘” & rw(0) & “‘,'” & rw(1) & “‘,'” & rw(2) & “‘,'” & rw(3) & “‘,'” & rw(4) & “‘,'” & rw(5) & “‘)”
Else
sql = “INSERT INTO TBLHardware(Urun,ISBN,Tur,Fiyat,Garanti,Marka) values(‘” & rw(0) & “‘,'” & rw(1) & “‘,'” & rw(2) & “‘,'” & rw(3) & “‘,'” & rw(4) & “‘,'” & rw(5) & “‘,'” & rw(6) & “‘)”
End If
com.CommandText = sql
com.CommandType = CommandType.Text
com.Connection = cnn
Dim adap As New System.Data.SqlClient.SqlDataAdapter(com)
Dim result As New DataSet
adap.Fill(result)
Next
MsgBox(“Aktarım Başarılı !!”)
Catch ex As Exception
MsgBox(“Aktarımda Hata Oluştu” & vbCrLf & ex.Message)
If Not MyConnection Is Nothing Then
MyConnection.Close()
End If
Throw ex
End Try
Eğer bu anlattığım yol üzerinden yapar ve Connectionstring bilgilerini doğru girdiğiniz taktirde programcığınızı böylece oluşturmuş olacaksınız….. 😉
Kolay gelsin…