2013-12-16 15 views
9

OleDbDataAdapter kullanarak Excel dosyasında e-tablodan SEÇ için, ama ben "select * from [Name of spreadsheet]" var görürsem bennasıl excel dosyasından <code>DataSet</code> ayıklamak için <code>OleDbDataAdapter</code> kullanıyorum

DataSet excelDataSet = new DataSet(); 
using (OleDbConnection con = new System.Data.OleDb.OleDbConnection(connectionString)) 
{ 
    con.Open(); 
    OleDbDataAdapter cmd = new System.Data.OleDb.OleDbDataAdapter("select * from [Name of spreadsheet]", con); 
    cmd.Fill(excelDataSet); 
    con.Close(); 
} 

SELECT deyimi ile ilgili sorunlar var, ama Herhangi bir e-tabloyu veya örneğin 1 e-tabloyu almanız gerekir, ancak bu e-tablonun adı herhangi bir şey olabilir.

Nasıl belirtilir? "select * from [%]"

cevap

16

Herhangi bir özel karakter var mı? Seçme deyimini uygulamak için sayfanın adını bilmeniz gerekir.
Ve adın sonunda özel char $ eklemeniz gerekir.

Eğer Bu örnek

using (OleDbConnection con = new OleDbConnection(connectionString)) 
{ 
    con.Open(); 
    DataTable dt = con.GetSchema("Tables"); 
    string firstSheet = dt.Rows[0]["TABLE_NAME"].ToString(); 
    ...... work with the first sheet ..... 
} 

diyebiliriz Eğer sayfaların isimlerini bilmiyorum sen durumda

OleDbDataAdapter cmd = new OleDbDataAdapter("select * from [MyFirstSheet$]", con); 

ile ondan satırlarını seçebilir sonra MyFirstSheet adında bir sayfanız var düşünürsek excel dosyasındaki ilk sayfanın adını vermelisiniz (diğer sayfalar ilk satırın ardına sıradaki satırlarda mevcuttur)

+1

Teşekkürler! ÇALIŞIYOR bir cazibe gibi! Olumsuz oy ve kabul et =) OleDbConnection =) içindeki şemaları okuyacaktır. – Bryuk

İlgili konular