2010-12-03 2 views
0

У меня есть ошибка о OleDB. Я просто хочу, чтобы мой файл Excel был импортирован в Gridview.C# Excel для Gridview Ошибка OleDB

Вот мой код.

строка 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 = "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 tends Свойства = 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 нужны двойные кавычки для значений Extended Properties. например:

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"""); 
Смежные вопросы