Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методуказания II семестр

.pdf
Скачиваний:
11
Добавлен:
02.06.2015
Размер:
2.32 Mб
Скачать

lblStatus->ForeColor = Color::Blue; lblStatus->Text = "Файл успешно открыт"; mnuClear_Click(sender, e);

vivod();

}

else{

lblStatus->ForeColor = Color::Red; lblStatus->Text = "Файл открыть не удалось";

}

}

}

private: System::Void mnuDel_Click(System::Object^ sender, System::EventArgs^ e) { ListView::SelectedListViewItemCollection^ item = this->lvList->SelectedItems; System::Collections::IEnumerator^ myEnum = item->GetEnumerator();

while ( myEnum->MoveNext() ){ needSave = true;

ListViewItem^ item = safe_cast<ListViewItem^>(myEnum->Current); ph = ph->del(ph, Convert::ToInt32(item->SubItems[0]->Text)); mnuClear_Click(sender, e);

vivod();

}

}

private: System::Void timer1_Tick(System::Object^ sender, System::EventArgs^ e) { static int times = 0;

if(lblStatus->Visible == true){ lblStatus->Visible = false; if(times == 3){

timer1->Enabled = false; times = 0;

}

}else{

lblStatus->Visible = true; times++;

}

}

private: System::Void Form1_FormClosing(System::Object^ sender, System::Windows::Forms::FormClosingEventArgs^ e) {

if(needSave){

if(MessageBox::Show(this, "Данные были изменены. Вы уверены что хотите закрыть приложение?","Получение информации", MessageBoxButtons::YesNo,MessageBoxIcon::Question) == ::DialogResult::No)

e->Cancel = true;

}

}

Elements.h

public: System::String^ getName(){ return txtName->Text;

}

public: System::String^ getDate(){ return mtxDate->Text;

}

public: System::Single getPrice(){

return Convert::ToSingle(txtPrice->Text);

}

private: System::Void btnOk_Click(System::Object^ sender, System::EventArgs^ e) { String^ msgText = "";

if(Equals(txtName->Text, "") == true){

msgText = "У товара должно быть название"; txtName->Focus();

}else if(Equals(mtxDate->Text, " . .") == true){ msgText = "У товара должна быть дата поступления"; mtxDate->Focus();

}else if(Equals(txtPrice->Text, "") == true){

41

msgText = "У товара должна быть цена"; txtPrice->Focus();

}

if(Equals(msgText,"") == false){ MessageBox::Show(this, msgText,"Сообщение",

MessageBoxButtons::OK,MessageBoxIcon::Error); return;

}

try{

Convert::ToDateTime(mtxDate->Text); }catch(...){

MessageBox::Show(this, "Введите дату поступления правильно!","Сообщение об ошибке", MessageBoxButtons::OK,MessageBoxIcon::Error);

mtxDate->Focus(); return;

}

try{

Convert::ToSingle(txtPrice->Text); }catch(...){

MessageBox::Show(this, "Введите число, например, 5,9!","Сообщение об ошибке", MessageBoxButtons::OK,MessageBoxIcon::Error);

txtPrice->Focus(); return;

}

this->DialogResult = ::DialogResult::OK; Close();

}

42

ЛАБОРАТОРНАЯ РАБОТА №12

Работа с базой данных

Цель работы: ознакомиться с принципами работы реляционных баз данных.

План работы: в течение одного занятия студент должен изучить материал текущей лабораторной работы и продемонстрировать свои навыки преподавателю. В результате чего студент получает две оценки: за приложение и за изученный материал.

Задание: создать приложение в для работы с базой данных.

Методические указания

1. Источники данных

Источниками данных для приложения могут служить: реляционные базы данных, вебсервисы, объекты и т.д. Когда вы проектируете приложение для работы с существующими источниками данных, вы должны связать ваше приложение данными. Для такой связи используются объекты классов, основными являются следующие: Data Source(System::Data),Database Tables (System::Data::DataTable), Table Columns (System::Data::DataColumn), Table Rows (System::Data::DataRow).

2. Доступ и отображение данных

Следующие три компонента используются вместе для доступа и отображения данных на форме приложения: DataGridView (таблица для работы с данными базы данных), BindingSource (средство связи с данными), BindingNavigator (панель инструментов для навигации и манипулированием (вставить/удалить запись) данными).

Ход работы

Создайте файл базы данных в Microsoft Access и сохраните его под именем, например, db1.

База данных содержит Таблицы, Запросы, Отчеты, Формы. Для создания таблиц в списке

Объекты, выбираем и .

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

При закрытии введите название таблицы, например, product. На вопрос о ключевом поле ответьте «Да».

43

Нажмите на таблицу product 2 раза и заполните несколько записей значениями

Создайте проект для проектирования приложения с графическим интерфейсом

6.Поместите на форму объект OleDbDataAdapter. Перед Вами откроется следующее окно

7.Нажмите «New Connection»

8.В появившемся окне:

в качестве источника данных (Data source) должно быть выбрано Microsoft Access Database File (OLE DB);

нажмите на кнопку «Browse» и укажите путь к файлу вашей базы данных;

нажмите на кнопку «Test Connection», для того чтобы проверить установилось ли соединение с базой данных.

44

9. Нажмите «Ok», чтобы вернуться в окно «Data Adapter Configuration Wizard». Нажмите на кнопку «Next», потом снова на кнопку «Next», затем в появившемся окне запишите запрос «Select * from product»

10.Нажмите на кнопку «Next», перед вами появится следующее окно

11.Нажмите на кнопку «Finish».

12.В области невизуальных объектов у вас появились следующие объекты

13.Далее в свойствах объекта oleDbDataAdapter1 выберите GenerateDataSet…

45

14.Перед вами откроется следующее окно

15.Нажмите «Ok». В области невизуальных объектов у вас появится объект dataSet11

16.Поместите на форму визуальный объект dataGridView1 класса DataGridView и в разделе ChooseDataSource выберите таблицу product, после чего у вас появится невизуальный объект productBindingSource

17.Отредактируйте колонки таблицы dataGridView1, для этого в свойстве Edit Columns удалите колонку «Код», а в свойстве HeaderText каждой колонки запишите русское название столбца.

18.Поместите на форму объект bindingNavigator1 класса BindingNavigator, в таблице свойств объекта установите свойство BindingSource значение productBindingSource.

19.Окно дизайнера форм примет следующий вид

20.В обработчик события загрузки формы поместите следующий код:

46

oleDbDataAdapter1->Fill(dataSet11);

21.Запустите проект на выполнение

22.В объекте bindingNavigator1 добавьте разделитель и кнопку

23.Для кнопки установите следующие свойства

Name

tsbUpdate

Image

Добавьте картинку

ImageTransparentColor

Установите цвет фона, что бы он был

 

прозрачным

ToolTipText

Обновить

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

oleDbDataAdapter1->Update(dataSet11);

25.Для каждой кнопки объекта bindingNavigator1 в свойстве ToolTipText напишите русский вариант всплывающего ярлыка.

26.Запустите проект добавьте новую запись, нажмите на кнопку «Обновить». Теперь информация будет сохранена в базу данных.

47