¬ыборка данных из 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

ќблако “егов