C# excelden veri alma

C# kullanarak bir Excel sayfasındaki verileri bir DataTable içerisine almak istiyorum. Yazdığım kod aşağıdaki gibi. Ancak “An unhandled exception of type ‘System.Data.OleDb.OleDbException’ occurred in System.Data.dll” hatası alıyorum. Nasıl çözebilirim ?

string connString= "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + myFilePath+ "; Extended Properties =Excel 8.0;";
OleDbConnection connec= new OleDbConnection(connString);
connec.Open();
DataTable dtPatterns = new DataTable();

komut = new OleDbCommand("SELECT * FROM [" + pageName+ "]", connec);
da.SelectCommand = komut;

da.Fill(myDatatable);

Kağan Murat Geliştirici on 11 Aralık 2015 yazdı
Yorum Ekle
  • 5 Yanıt(lar)
    En iyi yanıt

    Sorun excel dosyasından veri almak için kullandığım select sorgusundan kaynaklanıyormuş. Excel sayfasının adından sonra ‘$’ işareti koymak gerekiyormuş. Yani cümle şu şekilde olmalı;

    komut = new OleDbCommand("SELECT * FROM [" + pageName+ "$]", connec);
    
    
    Kağan Murat Geliştirici on 13 Aralık 2015 yanıtladı
    Yorum Ekle

    “myFilePath” doğru yazdığına emin misin?  çünkü database’in bulunduğu yolu tam olarak vermen gerekiyor. birde hatayı hangi satırda alıyorsun?

    Semiha Makinist Uzman on 12 Aralık 2015 yanıtladı
    Yorum Ekle

    da =new OleDbDataAdapter(komut,connec);

    tanımını yaptın mı ? 
    
    
    Sümeyye Kayaokay Kâşif on 12 Aralık 2015 yanıtladı
    Yorum Ekle

    Evet, data adapter ve command tanımları verdiğim kodun hemen üst kısmında şu şekilde

    OleDbCommand komut = new OleDbCommand();
    
    OleDbDataAdapter da = new OleDbDataAdapter();
    
    
    Kağan Murat Geliştirici on 12 Aralık 2015 yanıtladı
    Yorum Ekle

    myFilePath değişkeninin içeriği “C:\user_name\myExcelFile.xls” şeklinde.
    Hatayı son satırda, da.Fill() fonksiyonunda alıyorum.

    Kağan Murat Geliştirici on 12 Aralık 2015 yanıtladı
    Yorum Ekle
  • Yanıtınız

    Cevabınızı göndererek Gizlilik Politikası ve Hizmet Şartlarını kabul ediyorsunuz.