2013-12-16 14 views
9

Tôi đang sử dụng để trích xuất OleDbDataAdapterDataSet từ file excel, nhưng tôi có vấn đề với SELECT tuyên bố bênLàm thế nào để lựa chọn từ bất kỳ bảng tính trong Excel tập tin sử dụng OleDbDataAdapter

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(); 
} 

Nếu bạn thấy tôi có "select * from [Name of spreadsheet]", nhưng tôi cần lấy bất kỳ bảng tính nào hoặc ví dụ như bảng tính đầu tiên, nhưng tên cho bảng tính này có thể là bất kỳ thứ gì.

Làm cách nào để chỉ định? Có bất kỳ ký tự đặc biệt nào như "select * from [%]"

Trả lời

16

Bạn cần phải biết tên của trang tính để áp dụng câu lệnh chọn tại đó.
Và bạn cần phải thêm char đặc biệt $ vào cuối tên.

Giả sử bạn có một tấm tên MyFirstSheet sau đó bạn có thể chọn hàng từ nó với

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

Trong trường hợp bạn không biết tên của tờ của bạn, bạn có thể gọi

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 ..... 
} 

Ví dụ này nên cung cấp cho bạn tên của trang tính đầu tiên trong tệp excel (các trang tính khác có sẵn trong các hàng kế tiếp sau lần đầu tiên)

+1

Cảm ơn! Làm việc như một say mê! Upvote và accept =) Sẽ đọc về các lược đồ trong OleDbConnection =) – Bryuk

Các vấn đề liên quan