achraf boumessouer Ответов: 1

Я хочу сохранить свой файл excel в базе данных! ! !


public void Savefile()
       {
           // Connection String to Excel Workbook,Replace DataSource value to point to your excel file location
           string excelConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\cdr.xls ;Extended Properties=Excel 8.0";


           // Create Connection to Excel Workbook
           using (OleDbConnection connection =
                        new OleDbConnection(excelConnectionString))
           {
               OleDbCommand command = new OleDbCommand
                       ("Select * FROM [Sheet1$]", connection);

               connection.Open();

               // Create DbDataReader to Data Worksheet
               using (DbDataReader dr = command.ExecuteReader())//the compiler won't continue processing here
               {
                   // SQL Server Connection String
                   string sqlConnectionString = "Data Source=ACHRAF\\SQLEXPRESS;Initial Catalog=PFEBD;Integrated Security=True";

                   // Bulk Copy to SQL Server
                   using (SqlBulkCopy bulkCopy =
                              new SqlBulkCopy(sqlConnectionString))
                   {
                       bulkCopy.DestinationTableName = "CDR";
                       bulkCopy.WriteToServer(dr);

                   }
               }


           }
       }


Что я уже пробовал:

An unhandled exception of type 'System.Data.OleDb.OleDbException' occurred in System.Data.dll

Richard MacCutchan

Вам нужно поймать исключение, чтобы выяснить, что не так.

achraf boumessouer

Компонент database engine не может найти 'Sheet1 $'. Убедитесь, что имя параметра или псевдонима является допустимым, что оно не содержит неправильных символов или знаков препинания и что оно не слишком длинное.

achraf boumessouer

спасибо Вам большое !!я забыл о знаке $ я всегда удаляю его я думал, что это часть названия листа

1 Ответов

Рейтинг:
8

OriginalGriff

Цитата:
Компонент database engine не может найти 'Sheet1 $'. Убедитесь, что имя параметра или псевдонима является допустимым, что оно не содержит неправильных символов или знаков препинания и что оно не слишком длинное.

Поэтому проверьте свой файл Excel и посмотрите, какие листы у вас есть. Если вы переименовали лист из стандартного "Sheet1", то он не сможет найти его, если вы не измените свой оператор SELECT, чтобы обратиться к правильному имени листа со знаком доллара после него.

Но сделайте себе одолжение: не храните данные в корне любого диска, и уж тем более не в корне вашего загрузочного диска. Становится все труднее и труднее писать в такие файлы, так как это может выглядеть как вирусная активность. Храните свои данные в "безопасном месте" - это может помочь: Где я должен хранить свои данные?[^]


achraf boumessouer

спасибо Вам большое !!я забыл о знаке $ я всегда удаляю его я думал, что это часть названия листа

OriginalGriff

Всегда пожалуйста!