Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Вебмастеру -> Сеппа Д. -> "Microsoft ADO.NET" -> 219

Microsoft ADO.NET - Сеппа Д.

Сеппа Д. Microsoft ADO.NET — М.: Русская Редакция, 2003. — 640 c.
ISBN 5-7502-0223-2
Скачать (прямая ссылка): mcrsftado2003.pdf
Предыдущая << 1 .. 213 214 215 216 217 218 < 219 > 220 221 222 223 224 225 .. 260 >> Следующая

Все, что осталось сделать, — сопоставить элемент управления ComboBox с полем EmployeelD текущей записи о заказе. Это осуществляется аналогично связыванию свойства Text элемента управления TextBox со столбцом объекта DataSet. Найдите в окне Properties раздел (DataBindings), раскройте его. найдите свойство Selected-Value и свяжите это свойство со столбцом EmployeelD объекта DataTable Orders,
В период выполнения осуществить все это позиозясз следующий код:
Visual Basic .NET
cboEroployee.DataSource = tfsChaptarlS cfioEmployee.OisijlayMcmber = "Employees. EaployeeNane" ctoERplcyee.VelueNember = "Employees.EaployeselC" cboEmployee. DataBinrJings. AddC'SelectedValue", dsChapter13,
"Orders.EmployeelD")
Visual C# .NET
¦oboEmployee. DataSource = dsChapter13;
cboEmployee. DisplayHaiiber = "Employees. EmployeeName":
oboEmployee.ValueMember = "Employees,EmployeelD";
cboEmployee. DataBindings. AddC'SelectedValue", dsChapter13,
"Orders.EmployeelD");
Теперь при перемещении по записям о заказах будет отображаться значение поля Employee\Дте. а не поля EmployeelD. Кроме того, можно отредактировать запись о заказе и изменить значение поля EmployeelD, изменив имя
отображаемое в элементе управления ComboBox,
Управление форматом связанных данных
Тип данных столбца UnitPrice объекта DataSet - Decimal. Как следствие, элемент
управления TextBox на форме с информацией о заказанных товарах, связанный
510
Часть IV Создание эффективных приложений с использованием ADO NET
со столбцом UnitPrice, отображает содержимое этого столбца с использованием стандартного числового формата. Стоимость единицы товара, равная -.1 будет отображаться в TextBox как 45-
Можно написать код, чтобы вручную изменить формат отображения данных на более подходящий.
В одном из предыдущих разделов главы я приводил фрагмент кода, связывающий свойство Text элемента управления TextBox со столбцом объекта DataView,
Visual Basic .NET
txtOrderlD.DataBindings.Add("Text\ dsChapter13, "Orders.OrderlD")
Visual C# .NET
txtOrderlD.DataBindings.Add("Text", dsChapter13, "Orders.OrderlD");
Метод Add возвращает объект который реагирует на события объекта
и перемещает данные между элементом управления TextBox и столбцом, с которым этот элемент связан,
Объект Binding предоставляет два события — Format и Parse. Событие Format наступает, когда объект Binding загружает из источника в свойство, с ко-
торым связан. Событие Parse наступает, когда объект Binding считывает данные из связанного свойства и передает их в источник. С помощью этих событий удается управлять форматом отображения данных в связанных элементах управления TextBox.
Следующий фрагмент кода приложения выводит значение поля UnitPrice в элементе управления TextBox с использованием фо^дм;'. гг. соответствующего типу данных currency. Изменение формата представления данных осуществляется с помощью метода метод класса Decimal
Visual Basic
Public Sub fditDetaiKByVal cm As CurrencyManager)
Dim b As Binding
b = txtlJnitPrice. DataBindings. Add( "Text". vueDerail, "UnitPrice") AddHandler b.Format, AddressOf DecimalToCurrencyString AddHandler h. Parse, AddressOf CurrencyStringToOecimal
End SuQ
Private Sub DecimalToCurrencyString(ByVal sender As Object,
ByVal cevent As ConvertEventArgs)
If Not cevent.DesiredType Is GetType(String) Then
Exit Sub End If
If cevent.Value Is DBNull.Value Then cevent.Value = CDec(0),ToStrlrig("c")
Else
=
ГЛАВА 13 Создание эффективных Windows-приложений '311
End If
End Sub
Private Sub CurrencyStringToDecimaKByVal sender As Object,
ByVal cevent As ConvertEventArgs) If Not cevent. DeslredType Is GetType(Decimal) Then
Exit Sub End If
¦cevent. Value = Decimal. Parse(cevent. Value. ToString,
Globalization.NumberStyles. Currency,
Nothing)
End Sub
Visual C# .NET
public void EditDetaiKCurrencyKanager cm) {
Binding b;
b = txtUnitPrice.DataBindings.AddC'Text", vueDetail, "UnitPrice"); b.Format += new ConvertEventHandler(DscinaiToCurrencyString): 'b. Parse += new ConvertEventHandler(CurrencyStringToDecimal);
:
private void DecimalToCjrrencyString(object sender,
ConvertEventArgs cevent)
{
if ( Icevent.DeslredType.Equalsftypeof(string))) return;
if ==
cavant.Value = {(Decimal) 0).ToSti-ingC'c"):
else
=
I
private void sender,
ConvertEventArgs cevent)
¦;
if Clcevent.DesiredType.Equals(typeof(Decimal)))
return;
cevent. Value = Decimal. Parse(cevent. Value. ToString{),
System.Globalization.Numbe rStyles.Cu rrency,
null);
I
512 Часть IV Создание эффективных приложений с использованием ADO.NE~
Этап Если хочешь сделать что-то хорошо...
Давайте ненадолго прервемся и окинем взглядом созданное нами приложение. Благодаря функциям связывания с данными потребовалось очень мало кода, чтобы предоставить пользователям возможность просматривать и ргдтктпр' чл i г при помощи связанных элементов управления данные из двух объектов Dciiuiaislc, между которыми определено отношение. В этом вся суть функций связывания с данными — предоставить базовую функциональность для создания пользовательского
Предыдущая << 1 .. 213 214 215 216 217 218 < 219 > 220 221 222 223 224 225 .. 260 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100