Visual studio oracle подключение

Р азработчикам приложений баз данных при создании кода в Visual Studio приходиться постоянно обращаться к SQL -серверами типа Oracle или MS SQL Server . Просмотр содержания таблиц , создание индексов и запросов — совершать все эти рутинные манипуляции крайне желательно не переключаясь в какие-либо сторонние программы.

Так вот. Создатели Visual Studio предусмотрели этот момент и включили в состав этой среды разработки (IDE) функционал , который так и называется — Обозреватель Серверов :

Но прежде чем начать с ним работать , необходимо будет выполнить кое-какие предварительные действия — создать подключение. Реализовать такую процедуру попробуем следующим образом — по меню Сервис > Подключиться к базе данных :

. выбираем источник данных. Пусть в нашем учебном случае это будет MS SQL Server:

Жмем кнопку Продолжить и в сл. форме выбираем сервер и базу данных на нем , к которой желаем подключиться :

Кстати сказать , если нажать на Дополнительно , то можно получить строку подключения. Она может пригодиться при создании соответствующего кода :

Прим. Пример простого учебного приложения для работы с базой данных можно посмотреть здесь

Для проверки подключения на форме Добавить подключение жмем на Проверить , и если все OK, должны увидеть сообщение — Проверка подключения выполнена:

Теперь из панели Обозревателя серверов в Visual Studio есть возможность работать с объектами сервера:

Например , выбрав нужную таблицу , и нажав правую кнопку , выбрать в контекстном меню Показать таблицу данных.

. и просмотреть таким образом данные в таблице:

Или тут же , в рамках оболочки Visual Studio создать запрос и выполнить его:

В общем мораль , я думаю , ясна. Разработчикам баз данных из — под Visual Studio более совершенно нет никакой необходимости при работе с SQL — серверами иметь или переключаться в сторонние оболочки. Что не может не радовать по причине разумности и удобства такого подхода 🙂

Прим. Еще раз необходимо обратить внимание на такой момент — работать с серверами баз данных из Visual Studio логично и удобно , только если вы создаете свои программы в этой среде разработки. В других случаях логичнее использовать Management Studio.

Уроки программирования, алгоритмы, статьи, исходники, примеры программ и полезные советы

ОСТОРОЖНО МОШЕННИКИ! В последнее время в социальных сетях участились случаи предложения помощи в написании программ от лиц, прикрывающихся сайтом vscode.ru. Мы никогда не пишем первыми и не размещаем никакие материалы в посторонних группах ВК. Для связи с нами используйте исключительно эти контакты: vscoderu@yandex.ru, https://vk.com/vscode

Читайте также:  Удар током 380 последствия

Подключение базы данных Oracle к Visual Studio

В этой статье поговорим про подключение базы данных Oracle к Visual Studio в качестве источника данных. А также рассмотрим пример написания простейшего запроса к базе данных.

БД Oracle – как источник данных в VS

У меня имеется база данных “Книжный интернет-магазин”, созданная с помощью СУБД Oracle. Будем использовать эту БД в качестве примера источника данных в данной статье.

Итак, вначале создадим в Visual Studio проект: “Приложение Windows Forms”.

После того, как проект создан, в меню “ПРОЕКТ” выберем “Добавить новый источник данных…”.

Появится окно “Мастер настройки источника данных”. В этом окне выберем элемент “База данных” и нажмем кнопку Далее.

В следующем окне выбираем элемент “Набор данных” и жмем кнопку Далее.

Теперь необходимо выбрать подключение к базе данных. Оно у нас пока отсутствует, поэтому его необходимо создать. Нажмем кнопку “Создать подключение…”.

В качестве источника данных выберем “База данных Oracle”. В разделе “Connection Details” укажим данные для своего подключения.

В пункте “Database service name” я указал “XE”, потому что использую Express edition версию Oracle.

Выполним тест подключения. Для этого нажмем кнопку “Проверить подключение”.

В окне “Добавить подключение” нажмем кнопку ОК. Теперь, когда подключение создано, в Мастере настройки источника данных нажмем кнопку Далее.

В следующем окне поставим галочку напротив пункта “Да, сохранить подключение как” и нажмем кнопку Далее.

В последнем окне Мастера настройки источника данных выберем объекты, которые необходимо использовать в качестве набора данных в программе. И укажем имя этого набора. Нажмем кнопку Готово.

Теперь продемонстрируем использование данных из подключенной базы данных. Добавим в форму WIndows Forms элемент управления DataGridView. Щелкнем мышью на треугольничек в правом верхнем углу DataGridView, откроется меню “Задачи”. В этом меню можно выбрать источник данных проекта.

Выберем таблицу “Book” из базы данных.

В элементе управления DataGridView отобразятся данные из выбранной таблицы.

Пример запроса к БД Oracle из Visual Studio

Для написания запросов необходимо подключить к проекту через ссылку (References) библиотеку System_Data_OracleClient.dll (ссылка для скачивания этой библиотеки находится внизу страницы).

Приведем пример запроса к базе данных, для этого будем использовать язык C#. Получим название книги по ее ID.

Читайте также:  Программист с чего начать обучение самостоятельно

Доброго времени суток.

При разработке программного обеспечения всегда руководствовался простым правилом, чем меньше в развивающемся проекте используется сторонних компонентов, платформ, технологий, тем лучше. Почти все гениальное — просто. К сожалению, у разработчика не всегда есть возможность свободного выбора средств и систем, с которыми он работает. Вот и мне достался проект Windows Forms + ODAC + Oracle DB Server.

С большой радостью узнал о выходе Oracle Data Access Components (ODAC) for Microsoft Entity Framework and LINQ to Entities (Beta2). Очень ждал этого момента и вот свершилось! Можно не использовать сторонние ORM — все под ключ.

Как научить приложение использовать Entity Framework через установленный на конечных машинах клиент ODAC — описано в пошаговой инструкции от Oracle. Кому интересно, как избавиться от необходимости установки клиента Oracle на машинах пользователей, прошу под кат.

Общие требования

К системе пользователя:

  1. ОС не ниже MS Windows XP SP3
  2. Microsoft .NET Framework 4
  3. Дополнительно

135 МБ свободного дискового пространства

К системе разработчика:

  1. Visual Studio 2010 Service Pack 1
  2. Oracle Database server 9.2 или выше
  3. ODAC for Microsoft Entity Framework and LINQ to Entities
Подключаемые библиотеки

1.4 MB)) подключить как Reference и присвоить свойству “Copy local” значение “true”.

Следующие файлы необходимо просто добавить к проекту и присвоить свойству “Copy to Output Directory” значение “Copy if newer”:

    «путь к клиенту»client_1oci.dll (

1 MB)
«путь к клиенту»client_1orannzsbb11.dll (

1.2 MB)
«путь к клиенту»client_1inOraOps11w.dll (

0.3 MB)
«путь к клиенту»client_1oraociei11.dll (

130 MB)

Строка подключения должна иметь такой же вид как в файле «tnsnames.ora»:

Этого достаточно для обеспечения доступа к БД без установки клиента на машине пользователя:

private bool TestConnect()
<
try
<
var oracleConnection = new OracleConnection
<
ConnectionString =
"Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=ServerNameOrIP)(PORT=PortNumber)))(CONNECT_DATA=(SERVICE_NAME=DBName)));User >
>;
oracleConnection.Open();
var oracleCommand = new OracleCommand
<
CommandText = "select sysdate from dual" ,
Connection = oracleConnection,
Transaction = null
>;
var oracleDataAdapter = new OracleDataAdapter ;
var sysDateDataSet = new DataSet( "SomeName" );
oracleDataAdapter.Fill(sysDateDataSet, "dateTimeTable" );
return sysDateDataSet.Tables[0].Rows.Count > 0;
>
catch (Exception exx)
<
MessageBox.Show( string .Format( "Could not connect directly to an Oracle database:
<0>" , exx.Message));
return false ;
>
* This source code was highlighted with Source Code Highlighter .

Что необходимо сделать для использования Entity Framework Model без установки клиента Oracle

Создать, либо свою модель ADO.NET Entity Data Model, либо как в примере – «HRModel» с контекстом «HREntities». Для этого необходимо воспользоваться мастером добавления, как показано в руководстве от Oracle, упомянутом выше.

В файл конфигурации проекта (App.Config/Web.Config) будет автоматически (если вы выберете данный соответствующий пункт в мастере) добавлена строка подключения к БД Oracle:

add name ="HREntities" connectionString ="metadata=res://*/HRModel.csdl|res://*/HRModel.ssdl|res://*/HRModel.msl;prov providerName ="System.Data.EntityClient" />

Тут стоит обратить особое внимание на то, что значение, присвоенное атрибуту «provider connection string» обязательно должно быть в двойных кавычках (для их обозначения необходимо использовать код &_q_u_o_t). Это также стоит учесть при динамическом формировании строки подключения.

Читайте также:  Как вставить содержание в word 2010

Затем в файле конфигурации проекта необходимо создать раздел, в котором мы добавляем свой поставщик данных к уже зарегистрированным в системе, список которых находится в файле «%windir%Microsoft.NETFrameworkv4.0.30319Configmachine.config». Если на машине установлен ODAC, то провайдер «Oracle.DataAccess.Client» уже будет прописан в файле конфигурации системы и попытка добавить наш поставщик вызовет ошибку при старте приложения: «An error occurred creating the configuration section handler for system.data: Column ‘InvariantName’ is constrained to be unique. Value ‘Oracle.DataAccess.Client’ is already present».

Для предотвращения подобной ситуации, при помощи тега
remove invariant =«Oracle.DataAccess.Client» />
провайдер «Oracle.DataAccess.Client» будет удален из списка поставщиков данных, если он присутствует. Затем добавляем наш поставщик. Он будет добавлен к списку провайдеров EntityClient, зарегистрированных в системе:

system.data >
DbProviderFactories >
remove invariant ="Oracle.DataAccess.Client" />
add name ="Oracle.DataAccess.Client" invariant ="Oracle.DataAccess.Client" description ="Oracle Data Provider for .NET" type ="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=4.112.2.40, Culture=neutral, PublicKeyToken=89b483f429c47342" />
DbProviderFactories >
system.data >

Тонкости

string prov >"Oracle.DataAccess.Client" ;
string dataSourse = (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=ServerNameOrIP)(PORT=PortNumber)))(CONNECT_DATA=(SERVICE_NAME=DBName)));User > var sqlBuilder =
new SqlConnectionStringBuilder
<
DataSource = dataSourse
>;
string prov > var entityBuilder =
new EntityConnectionStringBuilder
<
Prov > Prov > Metadata =
@"res://*/HRModel.csdl|res://*/HRModel.ssdl|res://*/HRModel.msl"
>;
using ( var conn =
new EntityConnection(entityBuilder.ToString()))
<
conn.Open();
Console .WriteLine( "Just testing the connection." );
conn.Close();
>

* This source code was highlighted with Source Code Highlighter .

metadata=…;prov >’ Data Source= " (DESCRIPTION=(… ); User >"’

private bool DynamicConnect()
<
const string prov >"Oracle.DataAccess.Client" ;
const string serverName = "(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=ServerNameOrIP)(PORT=PortNumber)))(CONNECT_DATA=(SERVICE_NAME=DBName)));User >;
const string metadata = "metadata=res://*/HRModel.csdl|res://*/HRModel.ssdl|res://*/HRModel.msl" ;
var entBild = string .Format( "metadata=<0>;prov , metadata, providerName, serverName);
try
<
var conn = new EntityConnection(entBild);
conn.Open();
var hrEntities = new HREntities(conn);
var tmpResult = hrEntities.BRIDGE.Count();
conn.Close();
return true ;
>
catch (Exception exx)
<
MessageBox.Show( string .Format( "Could not connect directly to an Oracle database:
<0>" , exx.Message));
return false ;
>
>

* This source code was highlighted with Source Code Highlighter .

Быть может это отголоски бета версии – посмотрим как будет в релизе, который, как обещает Oracle, состоится в четвертом квартале 2011 года.