Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.52/75: Рейтинг темы: голосов - 75, средняя оценка - 4.52
luna662
0 / 0 / 0
Регистрация: 20.12.2009
Сообщений: 6
1

Подключение к БД Oracle

05.05.2011, 12:43. Просмотров 13718. Ответов 14
Метки нет (Все метки)

Народ, нужна помощь. Вообщем, есть база Oracle, хотелось бы клиент написать на C#. В интернете примеров много, но у меня все это дело не работает. Для начала бы хотелось просто подсоединиться к базе
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
using System.Data;
using System.Data.OracleClient;
using System.Data.OleDb;
using System.Data.Odbc;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            OleDbConnection cn = new OleDbConnection();
            cn.ConnectionString = "Provider=MSDASQL.1;" +
            "Integrated Security=yes;" +
            "Persist Security Info=False;" +
            "Initial Catalog=C:/Users/.../Debug;" +
            "Data Source=dBASE Files;" +
            "User ID=User_name;"+
            "Password=user_password;";
    }
    }
}
ConnectionString брал из созданного файла .udl, там без проблем все конектится. На C# же вылетает ошибка
Поставщик OLEDB Microsoft для драйверов ODBC (MSDASQL) не поддерживается поставщиком OLE DB данных .Net Framework (System.Data.OleDb). Используйте поставщика данных .Net Framework для ODBC (System.Data.Odbc).
Вроде как все разжевано, но ничего не понятно. Все перечисленные библиотеки подключил
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.05.2011, 12:43
Ответы с готовыми решениями:

Подключение к БД Oracle
Здравствуйте, Уважаемы форумчане. Так вот, в прошло семестре у меня было...

Подключение C# к Oracle 11
Пишет, что необходим Oracle 8.1.7 или поздняя. Стоит 11 версия. Использую...

Подключение к БД Oracle
Всем добрый вечер! Пытаюсь подключиться к своей базе данных Oracle 11g, для...

Подключение бд Oracle к ms visual studio 2010 на c#
Добрый день! не могу найти информацию о подключении бд Oracle к ms visual...

Подключение к 32-разрядному Oracle из 64-разрядного приложения
Здравствуйте! Суть проблемы проста - если на машине стоит 32-разрядный Oracle,...

14
Winsor
330 / 266 / 18
Регистрация: 19.01.2011
Сообщений: 597
05.05.2011, 15:25 2
Под рукой Оракла нету, но насколько я понял - если Вы используете System.Data.OracleClient - то объект коннекта будет OracleConnection а не OleDbConnection.
Ну и соответственно остальные OracleCommand , OracleDataReader...

Добавлено через 1 минуту
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 public void ReadData(string connectionString)
    {
       string queryString = "SELECT EmpNo, EName FROM Emp";
       using (OracleConnection connection = new OracleConnection(connectionString))
       {
          OracleCommand command = new OracleCommand(queryString, connection);
          connection.Open();
          using(OracleDataReader reader = command.ExecuteReader())
          {
             // Always call Read before accessing data.
             while (reader.Read())
             {
                Console.WriteLine(reader.GetInt32(0) + ", " + reader.GetString(1));
             }
          }
       }
    }
1
luna662
0 / 0 / 0
Регистрация: 20.12.2009
Сообщений: 6
05.05.2011, 16:04  [ТС] 3
Winsor, спасибо.
Изменил на OracleConnection. VS заставил обрезать код, убрать провайдера и секьюрити. На этапе конекта ошибок не вылезает. Но при открытии ругается вот такими словами:
для System.Data,OracleClient требуется клиентское программное обеспечение Oracle 8.1.7 или более поздней версии
Хотя на компе стоит Oracle 10g Expess Edition Database и Client.
0
Winsor
330 / 266 / 18
Регистрация: 19.01.2011
Сообщений: 597
05.05.2011, 16:11 4
Тут уж я не помошник... Нету оракла под рукой.

Добавлено через 5 минут
Попробуйте этот поставить
0
Grossmeister
Модератор
3395 / 2451 / 415
Регистрация: 21.01.2011
Сообщений: 10,755
05.05.2011, 16:14 5
Цитата Сообщение от luna662 Посмотреть сообщение
Хотя на компе стоит Oracle 10g Expess Edition Database и Client.
Если стоит сервер, зачем еще и клиент?

Родным SQL*Plus к БД коннект есть?
0
Winsor
330 / 266 / 18
Регистрация: 19.01.2011
Сообщений: 597
05.05.2011, 16:15 6
Это ADO.NET провайдер к ораклу.
0
luna662
0 / 0 / 0
Регистрация: 20.12.2009
Сообщений: 6
05.05.2011, 16:24  [ТС] 7
Если стоит сервер, зачем еще и клиент?
В связи с полным отсутствием знаний Oracle устанавливал все и сразу.

Родным SQL*Plus к БД коннект есть?
Да, конектится.
0
Grossmeister
Модератор
3395 / 2451 / 415
Регистрация: 21.01.2011
Сообщений: 10,755
05.05.2011, 16:28 8
Цитата Сообщение от luna662 Посмотреть сообщение
В связи с полным отсутствием знаний Oracle устанавливал все и сразу
Надеюсь, в разные ORACLE_HOME ?
0
luna662
0 / 0 / 0
Регистрация: 20.12.2009
Сообщений: 6
05.05.2011, 16:36  [ТС] 9
Надеюсь, в разные ORACLE_HOME ?
Канеш
0
Grossmeister
Модератор
3395 / 2451 / 415
Регистрация: 21.01.2011
Сообщений: 10,755
05.05.2011, 16:55 10
Кстати, я не силен в ADO, но что у тебя прописано в DataSource?
Ну или какой ConnectionString

Добавлено через 12 минут
кстати, вот здесь кой-какое описание есть
http://msdn.microsoft.com/en-us/library/ms971506.aspx
0
luna662
0 / 0 / 0
Регистрация: 20.12.2009
Сообщений: 6
05.05.2011, 17:04  [ТС] 11
Кстати, я не силен в ADO, но что у тебя прописано в DataSource?
Ну или какой ConnectionString
Создал файл .udl откыл его, там немного настроек выпадающими списками, ввел логин/пароль и проверил на соединение. Дальше открыл этот файл блокнотом, там фактически готовый ConnectionString, ну по крайней мере я так понял
0
Grossmeister
Модератор
3395 / 2451 / 415
Регистрация: 21.01.2011
Сообщений: 10,755
05.05.2011, 17:15 12
Я, честно говоря, не в курсе, что такое .udl-файл, но разве в DataSource прописывается не алиас из tnsnames.ora?

Например, по той ссылке, которую я привел
SQL
1
2
OracleConnection conn = NEW OracleConnection("Data Source=oracledb;
    User Id=UserID;Password=Password;");
1
luna662
0 / 0 / 0
Регистрация: 20.12.2009
Сообщений: 6
05.05.2011, 17:22  [ТС] 13
Я, честно говоря, не в курсе, что такое .udl-файл
Я, честно говоря, тоже )))

но разве в DataSource прописывается не алиас из tnsnames.ora?
Об этом я тоже не в курсе, пробывал изменить на oracledb, вроде как ему без разницы. По крайней мере он продолжает ругаться на то, что ему нужен Oracle 8.1.7
0
Grossmeister
Модератор
3395 / 2451 / 415
Регистрация: 21.01.2011
Сообщений: 10,755
05.05.2011, 17:27 14
Цитата Сообщение от luna662 Посмотреть сообщение
пробывал изменить на oracledb
Так это в примере oracledb, а в твоем случае какой алиас в tnsnames.ora? Найди файл и посмотри (если Oracle 10XE, то скорее всего и алиас XE).
Можешь еще проверить коннект путем
> tnsping.exe <алиас>
0
Winsor
330 / 266 / 18
Регистрация: 19.01.2011
Сообщений: 597
05.05.2011, 17:36 15
UDL, ну и такое.
0
05.05.2011, 17:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.05.2011, 17:36

Подключение к Oracle через ado.net по выбранному listener
1) есть 2 лисенера на Оракл сервере. клиентская часть проги(на .NET) должна...

Подключение базы Oracle: пространства имен "OracleClient" отсутствует в пространстве имен "System.Data"
В общем есть БД на оракл. Пытаюсь ее подключить в C#. (Data &gt; Add New Data...

Ошибка Selenium: Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение
IWebDriver driver; FirefoxDriverService serv =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru