Задача:
Подключение к удаленной БД Oracle средствами .NET C#.Теоретический экскурс:
Для подключения к удаленной БД Oracle, на ПК, с которого планируется производить подключение должны быть установлены компоненты Oracle.Исходные данные:
1. Среда разработки: Microsoft Visual C# 2008 Express;2. На компьютере, с которого планируется работа с удаленной БД установлено Oracle Client 11g (ODTwithODAC1120320_32bit.zip 229 MB, качаем с http://www.oracle.com/technetwork/topics/dotnet/utilsoft-086879.html);
3. Сервер БД - Oracle 9i Release 9.2.0.4.0.
Порядок выполнения работы:
1. Создаем проект "Project1";~
2. Добавляем к проекту Reference (Project > Add Reference... > Browse > "c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.OracleClient.dll");
~
3. В проекте Project1 создаем каталог 'Framework', в нем создаем класс 'OracleConnector' следующего содержания:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.OracleClient;
using System.Windows.Forms;
using System.Data;
namespace Project1.Framework
{
public class OracleConnector
{
string oraConnectionStr = "";
OracleConnection oraConnection;
OracleCommand oraCmd;
OracleDataReader oraReader;
public string errorMessage = "";
string username = "";
// Устанавливаем соединение с БД, результат пишем в лог.
public OracleConnector()
{
oraConnection = new OracleConnection(oraConnectionStr);
}
// Выполняем запрос к базе данных и возвращаем DataTable
public DataTable ExecQuery(string query)
{
DataTable table = new DataTable();
oraCmd = new OracleCommand(query, oraConnection);
try
{
oraReader = oraCmd.ExecuteReader();
table.Load(oraReader);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
return table;
}
public bool doConnect(string server, string username, string password)
{
this.username = username;
oraConnectionStr = "Data Source = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = " + server + ")(PORT = 1521))) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME= orcl))); User Id=" + username + ";Password=" + password + ";";
try
{
oraConnection.ConnectionString = oraConnectionStr;
oraConnection.Open();
}
catch (Exception ex)
{
errorMessage = ex.Message;
return false;
}
return true;
}
}
}
~
4. Прописываем в код формы namespace, и создаем объект для работы с удаленной БД:
...
// Подключаем namespace.
using Project1.Framework;
...
// объект для работы с удаленной БД.
OracleConnector oraConnector
...
~
5. На форму добавляем компонент DataGridView (имя dgv1) и Button (имя btnDo). Для кнопки btnDo создаем обработчик:
...
private void btnDo_Click(object sender, EventArgs e)
{
oraConnector = new OracleConnector();
if (!oraConnector.doConnect("sr-dbserver", "username", "pwd"))
{
MessageBox.Show(oraConnector.errorMessage);
return;
}
DataTable dTable = new DataTable();
dTable = new DataTable();
dTable = this.oraConnector.ExecQuery("select * from table1");
dgv1.DataSource = dTable;
dgv1.Update();
}
...
Комментариев нет:
Отправить комментарий