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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Невозможно найти устанавливаемый ISAM. что за ошибка? подключение к файлу Excel 
V
    Опции темы
lankin
Дата 3.1.2008, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



В общем сабж. 
Вот код, ругается на строку открытия соединения 46 и пишет "Невозможно найти устанавливаемый ISAM".
Код


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;

namespace Excel_to_Acces
{
    public partial class Form1 : Form
    {
        private string connStrToExcl;
        private string strExclType;

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            comboBox1.Items.Add("Excel 8.0");
            comboBox1.Items.Add("Excel 5.0");
        }

        private void button1_Click(object sender, EventArgs e)
        {
            openFileDialog1.ShowDialog();
        }

        private void openFileDialog1_FileOk(object sender, CancelEventArgs e)
        {
            //MessageBox.Show(openFileDialog1.FileName.Substring(13));
            string strExclName = openFileDialog1.FileName.Substring(13);
            connStrToExcl = "provider=Microsoft.JET.OLEDB.4.0;" + "data source = d:\\Исходники\\"
                            + strExclName +";Extended Properties="+strExclType+"; HDR=No; IMEX=1";

            readExclFile(strExclName);
        }
        public void readExclFile(string strSheetName) {
            string strCommand = "Select * From" + strSheetName;
            OleDbConnection conn = new OleDbConnection(connStrToExcl);
            //MessageBox.Show(connStrToExcl.ToString());
            conn.Open();
            OleDbDataAdapter daAdapter = new OleDbDataAdapter(strCommand, connStrToExcl);
            DataTable dtTable = new DataTable(strSheetName);
            daAdapter.FillSchema(dtTable, SchemaType.Source);
            daAdapter.Fill(dtTable);
            conn.Close();
            MessageBox.Show("Количество столбцов= " + dtTable.Columns.Count.ToString()
                                + " ; Количество строк= " + dtTable.Rows.Count.ToString());
        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            strExclType = comboBox1.Text;
        }
    }
}

Кто знает в чем проблема, сам сталкиваюсь в первый раз.
PM MAIL   Вверх
mr.DUDA
Дата 3.1.2008, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

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



Может пройдёт вариант:
Код
 connStrToExcl = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\Исходники\\"
                            + strExclName +";Extended Properties="+strExclType+";HDR=No;IMEX=1";



--------------------
user posted image
PM MAIL WWW   Вверх
thomas
Дата 3.1.2008, 21:55 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



lankin
Привет!
Еще вариантик
Код

connStrToExcl = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\Исходники\\"
                            + strExclName +";Extended Properties="+ Convert.ToChar(34).ToString() + strExclType+";HDR=No;IMEX=1" + Convert.ToChar(34).ToString();




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


Опытный
**


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

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



мр ДУДА - получилось то же самое.
Томас - этот вариант помог, расскажи в чем прикол.

Теперь другое: пишет "Ошибка синтаксиса (пропущен оператор) в выражении запроса '* FromИндекс 2008.xls'" и ругается на строку 49 daAdapter.FillSchema(dtTable, SchemaType.Source);
он что, SELECT не может найти?
PM MAIL   Вверх
lankin
Дата 4.1.2008, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Сделал, работает.

Код

string strCommand = "Select * From" + strSheetName;


переделал на 

Код

string strCommand = "Select * From [Лист2$]";


а как мне узнать вот это самое [Лист2$]

Это сообщение отредактировал(а) lankin - 4.1.2008, 10:55
PM MAIL   Вверх
mr.DUDA
Дата 4.1.2008, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

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



Модератор: Пожалуйста, один топик - один вопрос.

Для начала можно погуглить, наверняка ответ найдётся. smile 


--------------------
user posted image
PM MAIL WWW   Вверх
thomas
Дата 4.1.2008, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



lankin
Цитата

расскажи в чем прикол.

в
Код

Convert.ToChar(34).ToString()

выражение в кавычках.  smile 

Теперь ты пишешь в коде
Код

string strCommand = "Select * From" + strSheetName;

и получаешь
Цитата

* FromИндекс 2008.xls

А шпацию кто будет писать, Пушкин? После From сначала шпация, а потом кавычки. И возьми свой Индекс 2008.xls в одинарные кавычки. Это все же string.

Удачи.

Это сообщение отредактировал(а) thomas - 4.1.2008, 15:04


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


Опытный
**


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

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



Вот как решил проблему: поскольку мне лень все время ковыряться в коде и менять имена файлов в строке, то я сделал проще. Добавил элемент C1XLBook.

Код

c1XLBook1.Load(sPathExcl);

Здесь sPathExcl - полный путь к файлу, включая имя. Загружаем в него экселевский файл и получаем доступ к его элементам.
В итоге строка соединения получилась вот такой:
Код

string strCommand = "Select * From [" + c1XLBook1.Sheets[0].Name + "$]";

Осталось только придумать как работать с эксель-файлами, в которых несколько листов.
Кстати: все это не работает с офисом 2007. Поэтому приходится сначала сохранять файл в эксель97-2003.
PM MAIL   Вверх
wildc
Дата 17.4.2008, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(lankin @ 5.1.2008,  08:39)
Кстати: все это не работает с офисом 2007. Поэтому приходится сначала сохранять файл в эксель97-2003.

http://www.connectionstrings.com/default.a...rrier=excel2007
PM MAIL ICQ GTalk MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

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

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

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


 




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


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

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