C # Excel в Gridview Ошибка OleDB - PullRequest
       10

C # Excel в Gridview Ошибка OleDB

0 голосов
/ 03 декабря 2010

Я получил ошибку об OleDB. Я просто хочу импортировать мой файл Excel в Gridview.

Вот мой код.

string connstr = «Provider = Microsoft.Jet.OLEDB.4.0; Data Source = C: \ a.xls; Extended Свойства = Excel 8.0; HDR = ДА; 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; Extended Свойства = Excel 8,0; HDR = ДА; IMEX = 1 "; Строка 22: Строка 23:
OleDbConnection conn = new OleDbConnection (connstr);

Как я могу это исправить?

Ответы [ 2 ]

1 голос
/ 24 мая 2011

Вашей строке 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 голос
/ 03 декабря 2010

\ - это специальный символ в c # строковых литералах . Чтобы указать пути в строке в c #, используйте escape-код:

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

или используйте дословные строки:

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