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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> А подскажите пжалста, Excel и Microsoft.Jet.OLEDB.4.0 
V
    Опции темы
kaa
Дата 12.11.2006, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Собствено суть вапроса: могу ли я использовать данный поставщик для работы с файлами Excel. Если да, то как в нем различаются листы файла Excel и может нужно что-то в строке инициализации дополнительно прописать?
PM MAIL   Вверх
reloni
Дата 12.11.2006, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 112
Регистрация: 10.5.2006
Где: Москва

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



Этот поставщик судя по всему не можешь, во всяком случае я не смог его настроитьsmile
Вот как можно использовать ODBC поставщик: 
Код

private void button1_Click(object sender, EventArgs e)
{
    OdbcConnection conn =
        new OdbcConnection(@"Driver={Microsoft Excel Driver (*.xls)};
        DriverId=790;Dbq=C:\DB.xls;");
    OdbcDataAdapter adapter = 
        new OdbcDataAdapter("SELECT * FROM [Table1$]", conn);

    DataSet ds = new DataSet();
    adapter.Fill(ds, "Table1");
    adapter.SelectCommand.CommandText = "SELECT * FROM [Table2$]";
    adapter.Fill(ds, "Table2");

    this.dataGridView1.DataSource = ds.Tables["Table1"];
    this.dataGridView2.DataSource = ds.Tables["Table2"];
}

В самом DB.xls два листа с именами Table1 и Table2 соответственно, каждый из них воспринимается как отдельная таблица в БД.
Что бы в команде Select добраться до нужной нам таблицы, нужно использовать синтаксис [имяТаблицы$], по другому не проходит.
Ну а дальше вроде бы все понятно, заполняем данными ДатаСет и выводим каждую из таблиц с помощью грида.
PM MAIL ICQ   Вверх
kaa
Дата 13.11.2006, 00:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



reloni, спасибо, бум кодить дальше smile
А кстати, зачем в конце имени таблицы  значок $ ?
PM MAIL   Вверх
SeekerMan
Дата 13.11.2006, 11:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Превосходно можно. Вместо filename в strConn имя файла и вперёд.

Код

string strConn = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\'{0}\';Extended Properties=\'Excel 8.0;HDR=No;IMEX=1\'", filename);

            // select all data from excel 'Data' sheet
            OleDbConnection oConn = new OleDbConnection(strConn);
            string strSql = "SELECT * FROM [Sheet1$]";
            OleDbCommand command = new OleDbCommand(strSql, oConn);

            try
            {
                oConn.Open();
                reader = command.ExecuteReader();

                row = 0;

                // read data
                while (reader.Read())
                {
                    if (row > 0)
                    {
                        // check all neccessary columns
                        for (column = 0; column < 12; column++)
                        {
                            // if cell data isn't null
                            if (!reader.IsDBNull(column))
                            {
                                switch (column)
                                {
                                    case 0:
                                        
                                        break;
                                    case 1:
                                        
                                        break;
                                }
                            }
                        }
                    }
                    row++;
                }
                // close connection to excel sheet
                oConn.Close();*/


PM MAIL   Вверх
reloni
Дата 13.11.2006, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 112
Регистрация: 10.5.2006
Где: Москва

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



Цитата(kaa @  13.11.2006,  00:14 Найти цитируемый пост)
А кстати, зачем в конце имени таблицы  значок $ ? 

А без него не получаетсяsmile
PM MAIL ICQ   Вверх
kaa
Дата 14.11.2006, 00:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



SeekerMan, Спасиба бальшое, а где можно поподробнее узнать про все параметры запроса? Я вот доустим про свойство Extended Properties в строке подключения и не слышал smile  И что такое HDR и IMEX?  smile 

Это сообщение отредактировал(а) kaa - 14.11.2006, 00:08
PM MAIL   Вверх
reloni
Дата 14.11.2006, 09:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 112
Регистрация: 10.5.2006
Где: Москва

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



kaa, http://www.connectionstrings.com напримерsmile
PM MAIL ICQ   Вверх
Exception
Дата 14.11.2006, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



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

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

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

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


 




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


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

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