Я создал веб-приложение с помощью C# для импорта файла excel в Microsoft Dynamics CRM. Я использовал Fileupload для импорта файла excel.Ошибка ASP.NETC# при импорте данных из excel
Вот фрагмент кода:
Импорт Кнопка:
if (FileUpload1.PostedFile != null)
{
string FilePath = Path.GetFileName(this.FileUpload1.FileName);
string FileName = Server.MapPath(Path.GetFileName(FilePath));
string Extension = Path.GetExtension(this.FileUpload1.FileName);
DataTable dt = ImportData(FileName, Extension);
И это код ImportData:
private DataTable ImportData(string Filepath, string Extension)
{
string connString = "";
DataTable dt = new DataTable();
switch (Extension)
{
case ".xls":
connString = ConfigurationManager.ConnectionStrings["Excel03ConString"].ConnectionString;
break;
case ".xlsx":
connString = ConfigurationManager.ConnectionStrings["Excel07ConString"].ConnectionString;
break;
}
connString = string.Format(connString, Filepath, 1);
try
{
OleDbConnection excelConn = new OleDbConnection(connString);
OleDbCommand excelCmd = new OleDbCommand();
OleDbDataAdapter oda = new OleDbDataAdapter();
excelCmd.Connection = excelConn;
excelConn.Open();
DataTable dtexcelschema;
dtexcelschema = excelConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
string SheetName = dtexcelschema.Rows[0]["TABLE_NAME"].ToString(); **The Error Come from this line**
excelConn.Close();
excelConn.Open();
excelCmd.CommandText = "Select * from [" + SheetName + "]";
oda.SelectCommand = excelCmd;
oda.Fill(dt);
excelConn.Close();
}
catch (Exception ex)
{
Label1.Text = ex.Message;
}
return dt;
}
Когда я пытался импортировать первенствует в CRM. Я получил это сообщение: «В позиции 0 нет строки».
Я не знаю, что здесь происходит. Фактически, прежде чем я создаю веб-приложение, я создал приложение Windows с помощью этого кода и успешно импортировал данные. Но когда я копирую этот код в веб-приложение, я получил это сообщение.
EDITED
Это строка соединения внутри веб-конфигурации:
<add name ="Excel03ConString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;HDR={1}'"/>
<add name ="Excel07ConString" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 12.0;HDR={1}'"/>
спасают вас файл после загрузки на сервер где-нибудь? –
Нет, я просто импортирую данные Excel в динамику ms crm. И этот код хорошо работает на приложении Windows –
, что вы получаете в «Filepath», и у вас есть преимущество на том же пути с данными? –