除了像sql server,access常見的數據庫,其實Excel文件也可以做為數據庫訪問。
ado.net訪問excel的實例:
OleDbConnection cn = new OleDbConnection();
cn.ConnectionString = @"provider=Microsoft.jet.oledb.4.0;data source=[excel文件路徑];Extended Properties=""Excel 8.0;HDR=YES;""";
cn.Open();
OleDbDataAdapter oda = new OleDbDataAdapter("select * from [Sheet1$]", cn);
dtCode = new DataSet();
oda.Fill(dtCode);
dataGridView1.DataSource = dtCode.Tables[0].DefaultView;
注意:
1、EXCEL的工作簿名作為表名,如Sheet1書寫為[Sheet1$],[]和$都不能省略
2、訪問方式為oledb方式,provider=Microsoft.jet.oledb.4.0 ,特別是Extended Properties=""Excel 8.0;HDR=YES;"" 不能省略,省略就錯了。HDR=YES表示excel表格的第一行數據作為表的字段名,實際數據從第二行開始。
我在第一次做的時候碰到兩個問題。
(1)提示"找不到可安裝的ISAM"
這個是由於連接字符串缺少Extended Properties=""Excel 8.0;HDR=YES;"" 導致的。
(2)提示"索引103開始處,初始化字符串的格式不符合規范"
這是由於連接字符串書寫錯誤造成的,請參考正確的格式。這個錯誤的提示對應的鏈接字符串如下:
"provider=Microsoft.jet.oledb.4.0;data source=[excel文件路徑];Extended Properties=""Excel 8.0;HDR=YES;"
可以看到錯誤是由於Extended Properties的值是由""括起來的,由於丟失了右邊的括號,造成不符合規范。