Выборка данных из Oracle в DataSet C# и подключение к DataGridView

05:03:2013 Рі.

В заметке рассматривается способ подключения к базе данных Oracle из кода C# и заполнение выбранными данными DataSet, который потом можно использовать в качестве источника данных для DataGridView в Windows Forms. 

1. Предварительно необходимо установить на вашу систему Oracle ODAC(здесь качаем нужную версию), если есть желание использовать специализированные адаптеры для данных. Можно обойтись и без них - в этом случае нужно смотреть на примеры, подобные этому. Далее же рассматривается подклюение с помощью специальных библиотек. 

2. В проекте в "Ссылки" добавляем System.Data.OracleClient.  

3. Прописываем using System.Data.OracleClient;

 Далее пример фрагмета кода для получения данных:

DataSet ds = new DataSet();
DataTable dt = newDataTable("QueryTable"); 

DataGridView  DGW_QueryResult = new DataGridVIew(); 

using (OracleConnection connection = new OracleConnection(Static.Connection))
{
        OracleCommand command = newOracleCommand(query);
        command.Connection = connection;
        try
       {
              connection.Open();
              OracleDataReader reader = command.ExecuteReader();  

              ds.Tables.Add(dt);
              ds.Load(reader, LoadOption.PreserveChanges, ds.Tables[0]);  

              DGW_QueryResult.DataSource = ds.Tables[0];
       }
       catch (Exception ex)
      {
           //Обрабатываем            
      }
}

В данном примере мы загнали запрос из Oracle в DataSet напрямую. Однако, может понадобиться использовать объект reader в цикле.

В этом случае после заполнения объекта reader его можно прочитать следующим образом (в примере используется объект класса DBNames для примера.

while (reader.Read())
{
       DBNames CurDB = new DBNames();
       CurDB.DisplayName= reader.GetString(1);
       CurDB.RealName = string.Format("{0}.{1}", reader.GetString(0), reader.GetString(1) );

        db_names.Add(CurDB);
}

Данный код и библиотеки работают при использовании .NET Framework 3.5 SP1. К сожалению, System.Data.OracleClient для подключения к базе данных Oracle из C# .NET 4.0 отсутствует.

Тестировалось на версии Oracle 9i и выше. При использовании ODAC для подключения к базе Oracle 9-й версии, к сожалению, возможности использовать EntityFramework отсутствует. При использовании же Oracle ODAC 11-й версии применить EntityFramework в .NET возможно.

 

Добавить комментарий



Обновить

« C# или GTK# с Mono и MySQL с русской кодировкой символов
← Раньше

Фотоальбом

fotic.jpg

Облако Тегов