Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Excel -> Access, Возможно ли автоматическая конвертация? 
V
    Опции темы
iddqd
Дата 26.6.2007, 08:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 16.11.2005

Репутация: нет
Всего: 2



В файле Excek сруктура таблиц такая же, как в Access. Возможно ли конвертировать автоматически? Если нет, то как это можно сделать руками?
Речь идет о записи данных в БД из экселя.


--------------------
PM MAIL   Вверх
thomas
Дата 26.6.2007, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

Репутация: 35
Всего: 65



iddqd, 
Привет.
Мне думается что тебе нужно считать данные из файла Excel в таблицу в ДатаСете, а уже от туда обновлять твою Базу данных.

Делается это примерно так:

Подключение к Excel'ю, используя Jet Engine

Для подключения к Excel'ю можно воспользоваться объектами OleDb, которые будут трактовать Excel, как базу данных, вследствие чего, необходимые данные могут быть легко извлечены по средствам обычных SQL запросов. Важным моментом при подключении к Excel'ю является определение следующих параметров:

    * Connection String:

      Параметры в строке подключения (connection string) должны быть настроены для объекта OleDbConnection. Это особенно важно, так как в случае, если необходимые данные в настройках не будут установлены, сообщения Jet Engine об ошибках не помогут выявить причину не удачи.

      Синтаксис: Provider=Microsoft.Jet.OLEDB.4.0 ;Data Source=< Полный путь к Excel'ловскому файлу >; Extended Properties="Excel 8.0; HDR=No; IMEX=1".
    * Описание дополнительных свойств (Extended Properties):
          o Excel = <No>

            Здесь описывается версия Excel Sheet. Для Excel 2000 и выше, должна быть указана версия, как для Excel 8.0, а для всех остальных - Excel 5.0.
          o HDR= <Yes/No>

            Это свойство будет использоваться для определения описания заголовков колонок. Если указано ‘Yes’, то первая строка будет трактоваться как заголовок . В противном случае, заголовок будет сгенерированthe по принципу F1, F2 и так далее.
          o IMEX= <0/1/2>

            IMEX относится к режиму IMport EXport. Может принимать три возможных значения.
                + IMEX=0 и IMEX=2 приведут к игнорированию ImportMixedTypes, а вместо этого будет использовать значение по умолчанию - ‘Majority Types’. В этом случае будут браться первые 8 строк, а потом для каждой колонки будет определен тип данных.
                + IMEX=1 - это единственный способ установить значение ImportMixedTypes в Text. В этом случае, все будет трактоваться как текст. 

Загрузка данных в Dataset

После того, как при помощи Jet Engine соединение с Excel успешно установлено, загрузка данных в DataSet достаточно простой задачей. Теперь нужно написать запрос схожий с ANSI-92 с одним лишь отличием - каждый лист Excel будут трактоваться как таблица, а имя таблицы - имя соответствующего листа с “$”. Диапазон может быть указан после символа “$”. Пример вышесказанного показан ниже:


Код

public DataTable GetDataTable(string 
strSheetName)
{
  try
  {
    string strComand;

    if(strSheetName.IndexOf("|") > 0)
    {
      /* если используется диапазон  (Range).*/
      SheetName = strSheetName.Substring(0,strSheetName.IndexOf("|"));
      Range = strSheetName.Substring(strSheetName.IndexOf("|")+1);
      strComand="select * from ["+SheetName+"$"+Range+"]"; 
    }
    else
    {
      strComand="select * from ["+strSheetName+"$]"; 
    }

    daAdapter=new OleDbDataAdapter(strComand,cn);
    DataTable dt=new DataTable(strSheetName);
    daAdapter.FillSchema(dt,SchemaType.Source);
    daAdapter.Fill(dt); 
    cn.Close(); 
    return dt ;
  }

  catch(Exception ex)
  {
    throw new Exception(ex.Message); 
  }
}


источник тут

Успехов.  smile 

ЗЫ Плюс обязательно почитай вот это. 

Это сообщение отредактировал(а) thomas - 26.6.2007, 10:31


--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
iddqd
Дата 26.6.2007, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 16.11.2005

Репутация: нет
Всего: 2



Спасибо огромное. +1.


--------------------
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0583 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.