2010-12-03 12 views
0

OleDBについてエラーが発生しました。私はちょうど私のExcelファイルをGridviewにインポートしたい。C#Excel to Gridview OleDBエラー

ここに私のコードです。

文字列connstr = "プロバイダ= Microsoft.Jet.Oledb.4.0;データ ソース= C:\のa.xls;拡張 プロパティ=エクセル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 = "プロバイダ= Microsoft.Jet.Oledb.4.0;データ ソース= C:\ a.xls; Ex傾向=プロパティ= Excel 8.0; HDR = YES; IMEX = 1 "; 22行目:23行目:
OleDbConnectionオブジェクトでCONN =新しい OleDbConnectionオブジェクト(connstr)。

私はこの問題を解決するにはどうすればよいですか?

答えて

1

\はc# string literalsで特別な文字です。

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

または逐語的文字列を使用します:拡張プロパティ値のため、二重引用符を必要とconnstr

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

あなたの文字列をC#のいずれかを使用エスケープ文字列内のパスを指定するには 。例えば:

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""");