首页 文章

C#Excel到Gridview OleDB错误

提问于
浏览
0

我收到了关于OleDB的错误 . 我只想将我的excel文件导入Gridview .

这是我的代码 .

string connstr =“Provider = Microsoft.Jet.Oledb.4.0; Data Source = C:\ a.xls; Extended Properties = Excel 8.0; HDR = YES; IMEX = 1”; OleDbConnection conn = new OleDbConnection(connstr);

string strSQL =“从[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;数据源= C:\ a.xls;扩展属性= Excel 8.0; HDR = YES; IMEX = 1“;第22行:第23行:OleDbConnection conn = new OleDbConnection(connstr);

我怎样才能解决这个问题?

2 回答

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

    \是c# string literals中的特殊字符 . 要在c#中指定字符串中的路径,请使用转义:

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

    或使用逐字字符串:

    string path =@"C:\myfolder\myfile.xls";
    

相关问题