Генератор цветов Уроки C++ Уроки Windows forms Учебники по программированию Уроки HTML Уроки CSS Готовые задания Исходники Полезные программы
регистрация доменов

Дешёвые домены


Уроки Windows Forms C++/C#




Создание базы данных элемент DataGrindView в MVS C++

В этом уроке продемонстрировано создание телефонной книги – то есть базы данных. Если вы ещё не смотрели “предыдущий урок”, то обязательно его посмотрите, иначе вы ничего не сможете сделать. Суть данной программы следующая: на "Form1" находится тестовое поле, куда нужно ввести пароль, и кнопка, после нажатия которой программа проверяет введённый пароль. Если пароль admin то появиться вторая форма, где будет находится таблица и активная кнопка "Сохранить". В таблицу вводятся данные, нажимается кнопка – после чего, в папке проекта, создаётся документ baza.xml, в котором будут храниться данные, которые можно дополнять или удалять, сохраняя изменения. Если пользователь вводит пароль “reader”, то появляется вторая форма "form2" с той же таблицей и данными, но кнопка “Сохранить” не активна – пользователь может только просматривать данные, но не изменять. Если же пароль не верный –то появляется окошко "Incorrect password". Прежде, чем приступить к созданию программы – посмотрите этот урок, если ещё не смотрели.
Создайте проект в приложении "Windows Forms": на "Form1" перенесите – "label", "textBox" и "button"; Добавьте новую форму "form2" и перенесите на неё – "DataGrindView" и "button". Виды форм программы:






Когда первая форма становится не видима, появляется вторая, но закрыв вторую форму первая не закроется. Поэтому, если вы проверяйте программу в компиляторе, а не запускаете отдельно, то просто перезаходите в компилятор, тогда проект будет закрываться. Если вы запускаете программу отдельно из папки "Debug" (.exe), то всё будет впорядке.

Код программы:


Form1


#pragma once
#include "form2.h"

namespace BD_Number {

using namespace System;
.
.
.
#pragma endregion
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) {
this->Text = "Вход в БД";
label1->Text = "Введите пароль";
button1->Text = "Ввод";
textBox1->PasswordChar = '*';
textBox1->TextAlign = HorizontalAlignment::Center;
}

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
form2^ gform2 = gcnew form2;
gform2->Show();
if (textBox1->Text == "reader")
{
gform2->Visible = true;
this->Visible = false;
gform2->button1->Enabled = false;
}
if (textBox1->Text == "admin")
{
gform2->Visible = true;
this->Visible = false;
gform2->button1->Enabled = true;
}
if (textBox1->Text != "reader" && textBox1->Text != "admin")
{
gform2->Visible = false;
MessageBox::Show("Incorrect password!");
}
}

};
}



form2


.
.
}
private: System::Windows::Forms::DataGridView^ dataGridView1;
public: System::Windows::Forms::Button^ button1;
protected:

private:
/// <summary>
/// Требуется переменная конструктора.
/// </summary>
.
.
.
#pragma endregion

DataTable ^ Таблица;
DataSet ^ ВводДанных;

private: System::Void form2_Load(System::Object^ sender, System::EventArgs^ e) {
this->Text = "Телефонная книга";
button1->Text = "Сохранить";
this->Visible = false;
Таблица = gcnew DataTable();
ВводДанных = gcnew DataSet();
if (IO::File::Exists("baza.xml") == false)
{
dataGridView1->DataSource = Таблица;
Таблица->Columns->Add("Имена");
Таблица->Columns->Add("Номера Телефонов");
ВводДанных->Tables->Add(Таблица);
}
else
{
ВводДанных->ReadXml("baza.xml");
String ^ СтрокаXML = ВводДанных->GetXml();
dataGridView1->DataMember = ("Название таблицы");
dataGridView1->DataSource = ВводДанных;
}
}

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
Таблица->TableName = "Название таблицы";
ВводДанных->WriteXml("baza.xml");
}

};
}



Результат:




Следующий урок >>