2010-12-03 49 views
0

我得到了關於OleDB的錯誤。我只想將我的excel文件導入到Gridview。C#Excel到GridView OleDB錯誤

這是我的代碼。

串connstr = 「提供者= Microsoft.Jet.Oledb.4.0;數據 源= C:\ a.xls;擴展 屬性= Excel的8.0; HDR = YES; IMEX = 1」;

 OleDbConnection conn = new OleDbConnection(connstr); 

     string strSQL = "Select * from [Sheet1$]"; 

     OleDbCommand cmd = new OleDbCommand(strSQL, conn); 

     DataSet ds = new DataSet(); 

     OleDbDataAdapter da = new OleDbDataAdapter(cmd); 

     da.Fill(ds); 

     GridView1.DataSource = ds; 
     GridView1.DataBind(); 

當我建的項目沒有錯誤,但是當我運行這個項目我有這樣的錯誤:

System.ArgumentException:在 初始化字符串的格式不符合 從索引47開始的規格。

第21行:字符串connstr = 「Provider = Microsoft.Jet.Oledb.4.0; Data Source = C:\ a.xls; Ex傾向於 屬性= Excel 8.0; HDR = YES; IMEX = 1「; 第22行:第23行:
OleDbConnection conn = new OleDbConnection(connstr);

我該如何解決這個問題?

回答

1

\是c# string literals中的一個特殊字符。 要指定在C#或者使用字符串中的路徑逃避:

string path = "C:\\myFolder\\myfile.xls"; 

或使用逐字字符串:

string path [email protected]"C:\myfolder\myfile.xls"; 
1

你的字符串connstr需要爲擴展屬性值雙引號。例如:

OleDbConnection connection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + PrmPathExcelFile + @";Extended Properties=""Excel 8.0;IMEX=1;HDR=NO;TypeGuessRows=0;ImportMixedTypes=Text""");