Связывание данных с элементом управления в WPF 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Связывание данных с элементом управления в WPF



WPF предоставляет в распоряжение программиста гораздо больше возможно­стей для форматирования, чем Windows Forms, однако в примере, приведенном да­лее, мы будем выводить на экран данные в том же формате, что и раньше. Полный текст примера находится в проекте DatabindingWPF в коде, сопровождающем эту главу.

Реализацию данной задачи см. проект UpdateDatabaseFromDataSet.

Вначале напишем на языке XAML (Extensible Application Markup Language, расширяемый язык разметки приложений) код для окна:

<Window х:Class="DataBindingWPF.Windowl"

xmlns =

"http: / /schemas.microsoft. com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

Title="Data Binding Demo (WPF)" Height="301" Width="477">

<Grid>

<ListView Name="listViewl">

<ListView.View>

<GridView>

<GridViewColumn Header="ID" Width="35"

DisplayMemberBinding="{Binding Path=BookID}"/>

<GridViewColumn Header="Title" Width="200"

DisplayMemberBinding="{Binding Path=Title}"/>

<GridViewColumn Header="Published" Width="70"

DisplayMemberBindings"{Binding Path=PublishYear}"/>

</GridView>

</ListView.View>

</ListView>

</Grid>

</Window>

А теперь - код программы:

public partial class Windowl: Window

{

DataSet _dataSet; public Window1()

{

InitializeComponent();

_dataSet = CreateDataSet();

listView1.DataContext = _dataSet.Tables["Books"];

Binding binding = new Binding();

listView1.SetBinding(ListView.Iterns SourceProperty, binding);

}

protected override void

OnClosing(System.ComponentModel.CancelEventArgs e)

{

_dataSet.Dispose();

}

private DataSet CreateDataSet()

{

string connectionString = ©"Data source=NICOL_SRV\SQLEXPRESS;

Initial Catalog=TestDB;Integrated Security=SSPI";

using (SqlConnection conn = new SqlConnection(connectionString))

{

conn.Open();

using (SqlCommand cmd =

new SqlCommand("SELECT * FROM Books", conn))

using (SqlDataAdapter adapter = new SqlDataAdapter())

{

adapter.TableMappings.Add("Table", "Books");

adapter.SelectCommand = cmd;

DataSet dataSet = new DataSet("Books");

// Поместить все строки в набор данных

adapter.Fill(dataSet);

return dataSet;

}

}

}

}

На рис. 17.4 изображена WPF-версия элемента управления DataGrid с информа­цией из базы данных. Технология WPF позволяет связывать значения в любом эле­менте управления с источником данных.

 

Рисунок 17.4 - Элемент управления DataGrid

 

 

Рис. 17.5. Веб-страница с данными

 

Выяснение доступности соединения с базой данных

Задача. Ваше приложение работает в условиях ненадежного соединения с базой данных, и вы хотите, чтобы оно приостанавливало операции при обнаружении проблем.

Решение. В идеальном варианте базы данных не должны "исчезать" из сети, но в определенных ситуациях приходится проявлять крайнюю осторожность.

Реализацию данной задачи см. проект DetectIfDatabaseDown.

 

Рассмотрим простую функцию, которая делает попытку открыть соединение и возвращает булево значение, позволяющее судить об успешности попытки:

private static bool TestConnection()

{

try

{

using (SqlConnection conn =

new SqlConnection(GetConnectionString()))

{

conn.Open();

return (conn.State == ConnectionState.Open);

}

}

catch (SqlException)

{

return false;

}

catch (InvalidOperationException)

{

return false;

}

}

Примечание

Такой подход не гарантирует, что база данных доступна, ведь на сервере могут воз­никнуть проблемы уже после того, как функция возвратила true. В конечном счете, код должен быть очень устойчив к сбоям. Однако, как показала практика, эта функция полезна при работе в сети с регулярно пропадающим соединением с базой данных.

Задания

Вариант 1

Создать на MS SQL Server однотабличную базу данных, представляющую собойсписок моделей продаваемых компьютеров.

Каждая запись должна содержать следующую информацию: марка компьютера, тип процессора, тактовая частота процессора, объем оперативной памяти, объем видеопамяти, цена компьютера в условных единицах и количество экземпляров, имеющихся в наличии.

Для данной базы данных выполнить действия, указанные в разделе 4 настоящих методических указаний.

 

Вариант 2

Создать на MS SQL Server однотабличную базу данных учета нуждающихся в улучшении жилищных условий.

Каждая запись должна содержать следующие сведения: фамилия, количество членов семьи, дата постановки в очередь, занимаемая жилая площадь, необходимые жилищные условия (количество комнат и требуемая площадь).

Для данной базы данных выполнить действия, указанные в разделе 4 настоящих методических указаний.

 

Вариант 3

Создать на MS SQL Server однотабличную базу данных учета безработных на бирже труда.

Каждая запись должна содержать следующие сведения: фамилия, возраст, пол, образование, профессия, должность, стаж работы в последней должности, общий стаж работы, дата постановки на учет, желаемая зарплата, желаемая должность.

Для данной базы данных выполнить действия, указанные в разделе 4 настоящих методических указаний.

 

Вариант 4

Создать на MS SQL Server однотабличную базу данныхмоделирующую работу станции техобслуживания автомобилей.

Каждая запись должна содержать следующие сведения: марка автомобиля, требуемая марка топлива, объем бака, жилая площадь, остаток топлива, объем масла, необходимость мойки..

Для данной базы данных выполнить действия, указанные в разделе 4 настоящих методических указаний.

 

Вариант 5

Создать на MS SQL Server однотабличную базу данныхмоделирующую риэлтерскую контору (купля-продажа жилья).

Каждая запись должна содержать следующие сведения: район, адрес, количество комнат, жилая площадь, год постройки дома, запрашиваемая стоимость, телефон продавца.

Для данной базы данных выполнить действия, указанные в разделе 4 настоящих методических указаний.

 

Вариант 6

Создать на MS SQL Server однотабличную базу данных, содержащую информацию о файлах.

Для каждого файла в базе данных должны содержаться следующие сведения: имя файла, маршрут поиска, дата создания, количество обращений к файлу.

Для данной базы данных выполнить действия, указанные в разделе 4 настоящих методических указаний.

Вариант 7

Создать на MS SQL Server однотабличную базу данных, содержащую информацию об автобусах.

Сведения о каждом автобусе содержат: номер автобуса, фамилию и инициалы водителя, номер маршрута, номер автобусного парка.

Для данной базы данных выполнить действия, указанные в разделе 4 настоящих методических указаний.

Вариант 8

Создать на MS SQL Server однотабличную базу данных учета заявок на авиабилеты.

Каждая заявка содержит: пункт назначения, номер рейса, фамилию и инициалы пассажира, желаемую дату вылета.

Для данной базы данных выполнить действия, указанные в разделе 4 настоящих методических указаний.

Вариант 9

Создать на MS SQL Server однотабличную базу данных учета книг в библиотеке.

Сведения о книгах содержат: УДК, фамилию и инициалы автора, название, год изда­ния, количество экземпляров данной книги в библиотеке.

Для данной базы данных выполнить действия, указанные в разделе 4 настоящих методических указаний.

Вариант 10

Создать на MS SQL Server однотабличную базу данных «Моя записная книжка».

Каждая запись в книжке должна содержать: фамилию и инициалы, дату рождения, адрес и но­мер телефона.

Для данной базы данных выполнить действия, указанные в разделе 4 настоящих методических указаний.

Вариант 11

Создать на MS SQL Server однотабличную базу данных учета заявок на обмен квартир и поиска вариантов обмена.

Каждая заявка содержит следующие сведения о квартире: город, количество комнат, площадь, этаж, район.

Для данной базы данных выполнить действия, указанные в разделе 4 настоящих методических указаний.

Вариант 12

Создать на MS SQL Server однотабличную базу данных учета кандидатов, участвующих в выбо­рах губернатора.

Каждая заявка от кандидата содержит: фамилию и инициалы, дату рождения, место рождения, индекс популярности.

Для данной базы данных выполнить действия, указанные в разделе 4 настоящих методических указаний.

Вариант 13

Создать на MS SQL Server однотабличную базу данных картотеки абонентов, содержащей сведения о телефонах и их владельцах.

Для каждого абонента указываются следующие сведения: номер телефона, адрес абонента, время разговора, стоимость оплаты, сведения об оплате.

Для данной базы данных выполнить действия, указанные в разделе 4 настоящих методических указаний.

Вариант 14

Создать на MS SQL Server однотабличную базу данных «Автоматизированная информационная система на желез­нодорожном вокзале».

Информационная система содержит сведения об отправлении поездов дальнего следования. Для каждого поезда указывается: номер поезда, тип поезда (пассажирский или пригородный), станция назначения, время отправления.

Для данной базы данных выполнить действия, указанные в разделе 4 настоящих методических указаний.

 

Литература

1 Нейгел, Кристиан. C# 4.0 и платформа.NET 4 для профессионалов.: пер. с англ./ Кристиан Нейгел, Билл Ивьен, Джей Глинн, Карли Уотсон. – М.: Вильямс, 2011. – 1440 с.



Поделиться:


Последнее изменение этой страницы: 2016-04-26; просмотров: 462; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.206.169 (0.017 с.)