Технология Microsoft ADO.NET



           

Создание столбцов, основанных на выражении


При создании базы данных не следует помещать в нее значения, которые могут быть получены из уже имеющихся данных. В первой лекции мы создали базу данных BDTur_firm.mdb, в которой есть таблица "Туры". В этой таблице имеется поле "цена", где указывается стоимость туров. На практике может понадобиться значение цены, выраженное в различных валютах, значение с учетом налогов, значение со скидкой и т.п. Для каждого конкретного случая можно получить дополнительное поле, не вводя его в саму базу данных. Технология ADO .NET позволяет создавать объекты DataColumn, основанные на выражении. Создайте новое Windows-приложение и назовите его CustomExpression. Перетаскиваем на форму элемент управления DataGrid, свойству Dock устанавливаем значение Fill. Переходим в код формы, подключаем пространство имен:

using System.Data.OleDb;

В классе формы определяем строки CommandText и ConnectionString:

string commandText = "SELECT Информация, [Код тура], Название, Цена FROM Туры"; string connectionString = @"Provider=""Microsoft.Jet.OLEDB.4.0"";Data Source=""D:\Uchebnik\Code\Glava1\BDTur_firm.mdb"";User ID=Admin; Jet OLEDB:Encrypt Database=False";

В конструкторе формы программно создаем все объекты для вывода таблицы "Туры" в элемент управления DataGrid:

public Form1() { InitializeComponent(); OleDbConnection conn = new OleDbConnection (connectionString); OleDbCommand myCommand = new OleDbCommand(); myCommand.Connection = conn; myCommand.CommandText = commandText; OleDbDataAdapter dataAdapter = new OleDbDataAdapter(); dataAdapter.SelectCommand = myCommand; DataSet dsTours = new DataSet(); DataTable dtTours = dsTours.Tables.Add("Туры"); DataColumn dсIDtour = dtTours.Columns.Add("Код тура", typeof(Int32)); dсIDtour.Unique = true; DataColumn dcName = dtTours.Columns.Add("Название"); DataColumn dcPrice = dtTours.Columns.Add("Цена", typeof(Decimal)); DataColumn dcInformation = dtTours.Columns.Add("Информация"); conn.Open(); dataAdapter.Fill(dsTours.Tables["Туры"]); conn.Close(); dataGrid1.DataSource = dsTours.Tables["Туры"].DefaultView; }




Содержание  Назад  Вперед