414
Chương 10: Cơ sở dữ liệu
Không có OLE DB provider hay provider được-quản-lý nào cho Excel. Tuy nhiên, bạn có thể
sử dụng Microsoft Excel ODBC Driver (được cài đặt mặc định cùng với Excel) kết hợp với
ODBC .NET provider (đi kèm với .NET Framework 1.1 và Visual Studio .NET 2003).
Trong chuỗi kết nối, bạn cần chỉ định driver mà bạn đang sử dụng và tên file Excel. Ví dụ
dưới đây chỉ đến file test.xls trong thư mục startup của ứng dụng:
private string ConnectionString = "Driver={Microsoft Excel Driver
(*.xls)};DriverId=790;Dbq=" + Application.StartupPath + "\\test.xls;";
Sau khi kết nối, bạn có thể thực hiện hai kiểu thao tác:
SELECT
hay
INSERT
. Thay vì sử dụng
bảng, bạn chọn hay chèn dựa vào tên sheet. Tên sheet phải kết thúc bằng dấu đô la (
$
) và được
đặt trong dấu ngoặc vuông (nếu không, sẽ sinh ra lỗi cú pháp). Định dạng bị bỏ qua, và hàng
đầu tiên tự động được sử dụng làm các tên cột.
Ví dụ dưới đây trích và hiển thị tất cả các hàng trong Sheet1. Hình 10.2 là file Excel gốc. Hình
10.3 là dữ liệu được trình bày trên form.
private void ExcelView_Load (System.Object sender, System.EventArgs e)
{
OdbcConnection Con = new OdbcConnection(ConnectionString);
OdbcDataAdapter Adapter = new OdbcDataAdapter("SELECT * FROM [Sheet1$]",
Con);
DataSet Ds = new DataSet();
try
{
Con.Open();
Adapter.Fill(Ds, "Sheet1");
}
catch (Exception Err)
{
MessageBox.Show(Err.ToString());
}
finally
{
Con.Close();
}
grid.DataSource = Ds.Tables["Sheet1"];
}