Osman KURT

Yazılım Uzmanı | MVC Eğitmeni

ASP.Net de Excelden Veri Okuma ve Okunan Veriyi SQL'e Aktarma

Bu yazımda sizlere geçen bir projemde kullanmış olduğum bir kod yapısından bahsedeceğim. Excelden veriyi okumak ve okunan veriyi sql e kod kullanarak kaydetmek.

Öncelikle sayfamıza bir adet gridview ekliyoruz. Daha sonra c# tarafımıza geçerek excelden verilerimizi çekerek gridview içine dolduruyoruz.

 

protected void Page_Load(object sender, EventArgs e)
    {
        GridView1.DataSource = getirTumATSTablo();
        GridView1.DataBind();
    }

    DataTable getirTumATSTablo()
    {
        string dosya_adres = @"D:\osmankurt.xls";
        OleDbConnection baglanti = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + dosya_adres + ";Extended Properties=Excel 8.0");
        baglanti.Open();

        string query = "select * from [Sayfa1$A1:C800] ";
        OleDbDataAdapter oAdp = new OleDbDataAdapter(query, baglanti);
        DataTable dt = new DataTable();
        oAdp.Fill(dt);
        return dt;

    }

 

Şimdi sayfamıza bir adet buton atıyoruz ve butonumuza çift tıklıyoruz. Açılan kod satırımıza alt kısımda ki kodlarımızı yazıyoruz.

 

foreach (GridViewRow row in GridView1.Rows)
        {
            SqlCommand cmd = new SqlCommand("insert into Mail (A,B) values (@A,@B)", baglan.baglanti);
            cmd.Parameters.AddWithValue("@A", row.Cells[0].Text);
            cmd.Parameters.AddWithValue("@B", row.Cells[1].Text);
            if (ConnectionState.Closed == baglan.baglanti.State)
                baglan.baglanti.Open();
            cmd.ExecuteNonQuery();
            baglan.baglanti.Close();
        }

 

Bu kodumuzda yaptığımız işlem gridview içindeki satırları tek tek dolaşarak her satırda yazılı veriyi veritabanımıza kaydetmek. Algoritması son derece basit. Aslında bu işi direk yapan kod bloklarımız var fakat ben böyle bir yöntemle okumaya gittim.

Görüşmek Üzere,

Osman KURT

Yazılım Geliştirici ve Grafiker | Ineta K12 Spekaer

Yorumlar (13) -

  • mehmet özdemir

    27.09.2012 03:32:08 | Yanıtla

    insert ile yapmaktan ise sqlbulkcopy daha iyi ve seri oluyor cunku ben dedigin yöntemi kullandıgımda cok bekletiyordu.

  • orhan

    20.10.2012 14:27:31 | Yanıtla

    Osman Bey merhaba,

    "ASP.Net de Excelden Veri Okuma ve Okunan Veriyi SQL'e Aktarma " makalenizi web projemde uygulamaya çalıştım. Ama Griddeki veriler boş geliyor. State durumundan dolayı mı oluyor acaba.

    • osmankurt

      20.10.2012 16:15:09 | Yanıtla

      Kodları görmeden birşey söylemek zor. İstersen Mail ile at bana kontrol ettikten sonra dönüş yapayım.

  • mehmet çelik

    26.10.2013 22:44:53 | Yanıtla

    BEN BUNU ACCESS TE YAPIYORUM AMA TÜRKÇE KAREKTER SORUNU OLUYOR BUNUN ÇÖZÜMÜ VARMI ACABA

    • osmankurt

      26.10.2013 23:14:16 | Yanıtla

      Merhaba,
      Verileri okurken mi yoksa db ye yazarken mi karakter sorunu oluşuyor. Detaylı anlatırsanız yardımcı olabilirim.

      • Mehmet çelik

        13.11.2013 15:09:36 | Yanıtla

        verileri db yazdıktan sonra türkçe karekter sorunu oluyor
        veri tabanı :ACCESS

        • osmankurt

          13.11.2013 21:44:58 | Yanıtla

          Normal de böyle bir şey olmaması lazım. Örnek uygulamayı bana gönderirseniz test ederek size dönüş yapmaya çalışabilirim.

      • Mehmet çelik

        13.11.2013 15:39:11 | Yanıtla

        db ye yazarken sorun oluyor okurken hiç bir sıkıntı çıkmıyor

  • Mesut

    24.06.2014 11:50:14 | Yanıtla

    ya benim projemde böyle bir sorun var
    Microsoft Jet veritabanı alt yapısı '' dosyasını açamadı. Dosya bir başka kullanıcı tarafından özel kullanımda açılmış veya verileri görebilmeniz için izniniz yok.

    • osman kurt

      24.06.2014 21:40:24 | Yanıtla

      Mesut,
      Bu hatayı server'da alıyorsan dosya izinlerini kontrol et lütfen. ve db yolunun doğru olduğundan emin ol.

    • ramazan

      27.07.2017 13:54:41 | Yanıtla

      aynı sorun bende de var dosya yoluda doğru

  • acemi coder

    17.07.2014 04:42:20 | Yanıtla

    Özel Durum Ayrıntıları: System.Data.OleDb.OleDbException: Dış tablo, beklenen biçimde değil.
    bu şekilde bir hata alıyorum. excel dosyasını açamıyor. sorun ne olabilir ?

  • Bünyamin Güler

    09.01.2016 11:43:59 | Yanıtla

    Merhaba OSman Bey,

    Uzun süredir uğraşıyorum. Her seferinde aşağıdaki hatayı alıyorum. Bana bu konuda acil yardımcı olurmusunuz .

    Server Error in '/' Application.

    Could not load file or assembly 'Excel_Deneme' or one of its dependencies. An attempt was made to load a program with an incorrect format.

    Saygılarımla.

Loading