Asp.Net Excel’den DataTable’a ve Access’e Bilgi Aktarımı

exceltoaccess
Asp.Net ile Excel’de hazırlanan bir liste içindeki bilgileri DataTable’a ve Acess’e nasıl aktaracağız onun ile alakalı bir uygulama. Bu uygulama veri tabanına öğrenci bilgilerini girerken her öğrenci için tek tek uğraşmak yerine hazır bir excel tablosundan bilgileri alıp hazırlamış olduğumuz Access veritabanı’na aktaracağız, uygulamanın çalışan halini konu sonundan indirebilirsiniz…
İlk olarak Excel’de listemizi ve Access’de de veritabanı ve tablomuzu oluşturuyoruz.
exceldenaccess
Excel’de listeyi hazırlarken sıralamanın Access’de hazırladığımız tablodaki olmasına dikkat ediyoruz adsoyad,sinif,numara şeklinde..
Şimdi sayfamızı oluşturabiliriz.

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>www.aspnetornekleri.com Excel'den Access'e</title>
</head>
<body>
    <form id="form1" runat="server">
<div>    
<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="yukleaktar" runat="server" Text="Dosya Yükle & Aktar" onclick="yukleaktar_Click"/>
</div>
<asp:GridView ID="GridView1" runat="server">
</asp:GridView>
</form>
</body>
</html>

Yükleme işlemi için kodlarımızı yazmadan önce sayfamıza

using System.IO;
using System.Data.OleDb;
using System.Data;

eklemeyi unutmuyoruz, Dosya Yükle & Aktar butonumuz için gerekli kodlar

string baglanti = "";
            if (FileUpload1.HasFile)
            {
                string dosyaadi= Path.GetFileName(FileUpload1.PostedFile.FileName);
                string dosyauzanti= Path.GetExtension(FileUpload1.PostedFile.FileName);
                string dosyayeri = Server.MapPath("~/gecici/" + dosyaadi);
                FileUpload1.SaveAs(dosyayeri);
                //www.aspnetornekleri.com
                if (dosyauzanti== ".xls")
                {
                    baglanti = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + dosyayeri+ ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=2\"";
                }
                else if (dosyauzanti== ".xlsx")
                {
                    baglanti = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + dosyayeri+ ";Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=2\"";
                }
                //www.aspnetornekleri.com
                OleDbConnection bag = new OleDbConnection(baglanti);
                OleDbCommand komut = new OleDbCommand();
                komut.CommandType = System.Data.CommandType.Text;
                komut.Connection = bag;
                OleDbDataAdapter dAdapter = new OleDbDataAdapter(komut);
                DataTable excelkayitlari = new DataTable();
                bag.Open();
                DataTable excelsayfasi = bag.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
                string excelsayfasininadi = excelsayfasi.Rows[0]["Table_Name"].ToString();
                komut.CommandText = "SELECT * FROM [" + excelsayfasininadi + "]";
                dAdapter.SelectCommand = komut;
                dAdapter.Fill(excelkayitlari);
                bag.Close();
                GridView1.DataSource = excelkayitlari;
                GridView1.DataBind();
                OleDbConnection baglan = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; DATA Source=" + Server.MapPath("App_Data/ogrenci.accdb"));
                foreach (GridViewRow row in GridView1.Rows)
                {//www.aspnetornekleri.com
                    OleDbCommand komut1 = new OleDbCommand("insert into bilgiler (adsoyad,sinif,numara) values (@adsoyad,@sinif,@numara)", baglan);
                    komut1.Parameters.AddWithValue("@adsoyad", HttpUtility.HtmlDecode(row.Cells[0].Text));
                    komut1.Parameters.AddWithValue("@sinif", HttpUtility.HtmlDecode(row.Cells[1].Text));
                    komut1.Parameters.AddWithValue("@numara", row.Cells[2].Text);
                    if (ConnectionState.Closed == baglan.State)
                        baglan.Open();
                    komut1.ExecuteNonQuery();
                    baglan.Close();
                }
                File.Delete(dosyayeri);

Neler Yapıldı kısaca açıklamak gerekirse ilk olarak Excel dosyasını sunucuda oluşturduğumuz gecici isimli klasöre yüklüyoruz daha sonra excel içindeki bilgileri gridview ile ekranda gösterip her satırdaki bilgiyi okuyarak Access veri tabanına kaydediyoruz.

Excel’den DataTable’a ve Access’e Bilgi Aktarımı Uygulamasını İndir!!!

exceltoaccess