Главная > Работа с базами данных на языке C#
НАПИШУ ВСЁ ЧТО ЗАДАЛИ
СЕКРЕТНЫЙ БОТ В ТЕЛЕГЕ
<< Предыдущий параграф Следующий параграф >>
Пред.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
След.
Макеты страниц

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

Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике

ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO

3.4. Пример создания приложения БД "вручную"

Создадим в параллель два приложения для работы с созданными ранее базами данных, аналогичные приложению, рассмотренному выше (см. п. 3.1). Работа будет проводиться, соответственно, со следующими таблицами:

- Microsoft Access - BDTur_firm.mdb (см. п. 1.3);

- Microsoft SQL - BDTur_firmSQL.mdf (см. п. 1.4).

Начнем с запуска Visual Studio 2008 и создания нового проекта Windows Application.

Размещаем на создавшейся форме элемент управления DataGridView, свойству Dock которого устанавливаем значение Fill. Переходим в код формы и подключаем соответствующие пространства имен:

- для MS Access - using System.Data.OleDb;

- для MS SQL - using System.Data.SqlClient;

В любом случае необходимо подключить пространство имен System.Data.

В конструкторе формы после InitializeComponent создаем объект DataAdapter.

В приложении, работающем с MS Access, соответствующий код будет выглядеть следующим образом:

public Form1() {
//
// Required for Windows Form Designer support
//
InitializeComponent();
OleDbDataAdapter dataAdapter = new OleDbDataAdapter(CommandText, ConnectionString);
}

А в приложении, работающем с MS SQL:

public Form1() {
//
// Required for Windows Form Designer support
//
InitializeComponent();
SqlDataAdapter dataAdapter = new SqlDataAdapter(CommandText, ConnectionString);
}

Как видно из приведенного кода, фрагменты отличаются только названиями объектов.

В качестве параметров DataAdapter передаются CommandText и ConnectionString. Переменная типа string CommandText представляет собой обычный SQL-запрос на выборку из таблицы «Туристы», а переменная типа ConnectionString - это так называемая строка подключения, в которой указываются расположение базы данных, ее название, параметры авторизации и пр.

Воспользуемся следующими строками подключения и командами:

// MS Access
CommandText: "SELECT [Код туриста], Фамилия, Имя, Отчество FROM Туристы";
ConnectionString: "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="D:ВМИFor ADO BDTur_firm.mdb"
// MS SQL:
CommandText: "SELECT CustomerID, CompanyName, ContactName, ContactTitle, Address, City, Region, PostalCode, Country, Phone, Fax FROM Customers"
ConnectionString: "Data Source=.SQLEXPRESS;AttachDbFilename="D:ВМИFor ADO BDTur_firmSQL.mdf';
Integrated Security=True;Connect Timeout=30;User Instance=True"

Обратите внимание на названия переменных CommandText и ConnectionString. Когда создается объект DataAdapter, в качестве параметров можно передать названия строк, таких как cmdText и conString, или даже cmt и cns - совершенно равноправно, не забыв, конечно же, назвать также эти переменные в классе Forml. Но сама среда Visual Studio 2008 генерирует эти строки именно с такими названиями - CommandText и ConnectionString, поэтому такое название переменных облегчает поддержку и сопровождение разработанного программного продукта.

Продолжим создание программы. Дальнейший код одинаков для обоих вариантов.

Создаем объект

DataSet: DataSet ds = new DataSet();

Заполняем таблицу «Туристы» объекта ds данными из базы:

dataAdapter.Fill(ds, "Туристы");

Связываем источник данных объекта dataGridView1 с таблицей «Туристы» объекта ds:

dataGrid1.DataSource = ds.Tables["Туристы"].DefaultView;

Теперь запустим созданное приложение. Если все сделано правильно, то на экранной форме отобразится содержимое таблицы «Туристы».

Теперь изменим код следующим образом:

dataAdapter.Fill(ds, "Туристы2");

dataGridView1.DataSource = ds.Tables["Туристы2"].DefaultView; Таблицы «Туристы2» в БД нет, однако код по-прежнему работает. Это связано с тем, что таблица, которую мы называем «Туристы», при вызове метода Fill объекта dataAdapter может быть названа как угодно - ее содержимое будет представлять собой извлекаемую таблицу из базы данных. При указании источника данных (DataSource) для объекта dataGridView1 мы ссылаемся именно на таблицу «Туристы», которая была создана при вызове метода Fill. Таким образом, при заполнении таблиц их можно называть произвольным образом. Однако для реальных проектов рекомендуется использовать настоящие названия таблиц, чтобы избежать путаницы и трудностей в сопровождении.

 

1
Оглавление
email@scask.ru