Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

ADO.NET--OleDbConnection

14K
03 декабря 2007 года
Irene_001
43 / / 29.07.2007
Вопрос может покажется глупым, но не судите пожалуйста строго, я только начала изучать этот предмет…

Мне нужно «открыть соединение с хранилищем данных» (на C#).(Базу данных создавала в Access)

Пишу следующее:

 
Код:
OleDbConnection cn = new OleDbConnection();            
           
cn.ConnectionString ="Provider=Microsoft.Jet.OLEDB.4.0;" +
                       @"Data Source=D:\BD\bd2\db2.mdb;" +
                       "Initial Catalog=t2;";

            cn.Open();

            cn.Close();

Выдаётся в строке с Open ошибка:
«Произошли ошибки во время выполнения многошаговой операции OLE DB. По возможности, проверьте значения всех состояний OLE DB. Работа не выполнена.»
Подскажите пожалуйста, что делалось неверно
29K
07 декабря 2007 года
Mr. Iden
12 / / 15.11.2007
С C# не дружу, но на C++ такой код вызвал бы ошибку из-за использования символа \ вместо \\. Наверное правильнее будет
Source=D:\\BD\\bd2\\db2.mdb
5
07 декабря 2007 года
hardcase
4.5K / / 09.08.2005
Цитата: Irene_001
Подскажите пожалуйста, что делалось неверно


Трудно сказать, ваша строка подключения выглядит корректной.
Попробуйте добавить это соедниение в Visual Studio. Откройте Server Explorer (в полной версии) или Database Explorer (в Express версии), из него можно создать подключение, далее в свойствах можно посмотреть его строку подключения.

Цитата: Mr. Iden
С C# не дружу, но на C++ такой код вызвал бы ошибку из-за использования символа \ вместо \\. Наверное правильнее будет
Source=D:\\BD\\bd2\\db2.mdb


Если не дружишь, то чего отвечаешь? В C# есть verbaitm-string, префиксом которой является @, семантика его такова, что компилятор не применяет к строке эскейп-последовательностей.

14K
07 декабря 2007 года
Irene_001
43 / / 29.07.2007
Спасибо огромное за ответы!!!Поломав немного глову я всё-таки поняла в чём дело (я пишу на всякий случай, вдруг кому-то станет интересно, или столкнётся с подобной проблемой)...
так как подключение через OleDb, то "Initial Catalog=t2;" в строке подключения-- лишее. Если его убрать, то всё заработает

 
Код:
OleDbConnection cn = new OleDbConnection();            
           
cn.ConnectionString ="Provider=Microsoft.Jet.OLEDB.4.0;" +
                       @"Data Source=D:\BD\bd2\db2.mdb;"; // правильная строка

            cn.Open();
            ..............
            cn.Close();

опять таки не берусь говорить что это 100% верно, но в этом случае у меня работает
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог