看到博問上一C#讀取VFP資料的提問,試圖解決一下,之前有點印象,於是寫代碼小試一下;
首先要安裝VFPOledb 的oledb provider,到微軟官方下載;
安裝完畢,基於這個Provider的常式資料庫Northwind ,測試代碼如下:
轉載請註明:http://www.cnblogs.com/winzheng/archive/2009/07/11/1521435.html
1 public void OpenVFP()
2 {
3 OleDbConnection objConn = new OleDbConnection();
4 OleDbDataAdapter SQLada;
5 objConn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;"+
6 "DataSource= C:\VFP\Samples\Northwind;"+ //這是本機安裝Provider的路徑
7 "Extended Properties='dBASE 5.0'";
8 objConn.Open();
9 OleDbCommand cmd = new OleDbCommand();
10 cmd.CommandType = CommandType.Text;
11 cmd.CommandText =
12 "select * from employeeterritories";//employeeterrITories.dbf
13 SQLada = new OleDbDataAdapter(cmd);
14 }
運行程式:報出找不到可安裝的 ISAM ;
呵呵,沒遇見過,搜之......
DataSource= C:\VFP\Samples\Northwind; 應該是Data Source= C:\VFP\Samples\Northwind;
把空格吃掉了,總之你的串連串一定不能寫錯,否則就會報這個錯誤。
類似的問題也會在如下情況發生,例如你的“Excel 12.0;HDR=Yes;IMEX=1” 如果少加了引號也會得到這個結果:
OleDbConnection cn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\upload\2009070512123000005.xls;Extended Properties='Excel 12.0;HDR=Yes;IMEX=1';");
建議還是把常用串連做成一個模板,不但要記在心中,最好用的時候直接粘貼,否則小的疏忽會導致大的損失。
轉載請註明原創位置:http://www.cnblogs.com/winzheng/archive/2009/07/11/1521435.html