May help to find the way of connection to remote oracle-db using C#
1. Подключение к удаленной БД Оракл с Net Framework и извлечение данных с использованием LINQ (Language integrated query)
Подключаясь к базе данных ОРАКЛ (удаленному серверу), с помощью NUGET
. Скачиваем необходимые зависимости, добавляем строку подключения
Настраиваем конфиги файла TNSNAMES.ORA
на клиенте, запускаем удаленную базу данных, записываем ip адрес для подключения
В файл App.config
– добавляем новый конфиг – строку подсоединения, адрес, порт, протокол, имя БД, пользователя и пароль, или все что было в файле TNS names.ora
<connectionStrings>
<add name="con" connectionString="Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.252.129)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)));User Id=hr;Password=123;" />
</connectionStrings>
Скачиваем зависимости – Ссылки – Управление пакетами NuGet Oracle Managed Data Access
Чтобы смотреть результат из консоли тоже, нужно поменять тип приложения на Консольное приложение (форма также будет выходить при каждом запуске)
Приступаем к выводу данных из таблицы. Немного терминов про использованные в программе структуры данных
Data Table
- Представляет одну таблицу данных в памяти- При создании DataTable необходимо определить ее схему путем добавления
DataColumn
объектов в DataColumnCollection объект (доступ к которым выполняется через Columns свойство) - Чтобы добавить строки в объект
DataTable
, необходимо сначала использовать NewRow метод для возврата новогоDataRow
объекта OracleDataAdapter
заполненяет объектDataSet
, создает необходимые таблицы и столбцы для возвращаемых данных. Также служит связующим звеном между набором данных и базой для их извлечения и сохранения
Из панели инструментов настраиваем GUI приложения
Извлекаем каждый столбец отдельно, весь запрос строится в строковом выражении SQL Запроса
Выводит только те департаменты где в названиях которых есть заглавная буква А, дальше по усмотрению программы можно изменять LINQ запрос и генерировать XML file