Автор работы: Пользователь скрыл имя, 08 Мая 2014 в 16:42, курсовая работа
Цель исследования: при помощи языка программирования C-Sharp (C#) и визуальной среды VisualStudio 2010 создать программу, которая позволяет работать с базой данных.
Задачи исследования: научиться работать с базой данных в среде Visual Studio 2010 и создать программу, представляющую собой программную оболочку для управления базой данных.
В данной работе рассмотрены основные средства управления базами данных в среде Visua lStudio 2010, используя механизм доступа к данным OLE DB и язык программирования С-Sharp (C#).
Введение 4
Глава 1. Механизмы доступа к данным 5
1.1. OLE DB и ADO 7
1.2. OLE DB 9
1.3. Объекты OLE DB 11
1.3.1. Объект DataSource 11
1.3.2. Объект Session 11
1.3.3. Объект Command 12
1.3.4. Объект Rowset 12
1.3.5. Объект Enumerator 13
1.3.6. Объект Transaction 13
1.3.7. Объект Error 13
Глава 2. Разработка автоматизированной системы «Магазин бытовой техники» 15
2.1. База данных 15
2.1.1. Концептуальное проектирование 15
2.1.2. Таблицы 16
2.1.3. Схема данных 18
2.2. Выбор языка и среды программирования 19
2.3. Подключение базы данных в Visual Studio 2010 .NET 19
3.1. Интерфейс программы 20
Главная форма. 20
3.1.1. Вспомогательная форма. 23
3.2. Написание кода 24
3.2.1. Форма FormAdmin (файл FormAdmin.cs) 24
3.2.2. Форма FormNewType (файл FormNewType.cs) 30
3.3. Назначение событий элементам 32
Заключение 33
Список использованной литературы 34
Свойства элементов:
№ |
Имя элемента (Name) |
Свойства |
1 |
groupBox1 |
Location = 12; 12 Size = 566; 188 |
2 |
label1 |
Location = 13; 22 Text = Тип |
label2 |
Location = 13; 22 Text = Название | |
label3 |
Location = 13; 22 Text = Описание | |
label4 |
Location = 13; 22 Text = Цена | |
3 |
cbType |
DataSource
= Другие источники данных\Источники данных
проекта\DataBaseDataSet\ DysplayMember = Type Location = 92; 22 Size = 213; 21 ValueMember = Code |
4 |
tbCaption |
Location = 92; 52 Size = 455; 20 |
5 |
tbDescription |
Location = 92; 82 Size = 455; 68 |
6 |
tbPrice |
Location = 92; 157 Size = 120; 20 |
7 |
bNewType |
Location = 311; 21 Size = 75; 23 Text = Новый |
8 |
bNew |
Location = 593; 24 Size = 75; 23 Text = Новый |
9 |
linkLabel1 |
Location = 626; 2 Size = 75; 13 Text = О программе |
10 |
bSearch |
Location = 593; 53 Size = 75; 23 Text = Поиск |
11 |
bSearchReset |
Location = 593; 83 Size = 75; 23 Text = Сброс Visible = False |
12 |
bNewAdd |
Location = 593; 119 Size = 75; 23 Text = Добавить |
13 |
bDel |
Location = 593; 148 Size = 75; 23 Text = Удалить |
14 |
bSave |
Location = 593; 177 Size = 75; 23 Text = Сохранить |
15 |
dgv_admin |
DataSource = Другие источники данных\Источники
данных проекта\DataBaseDataSet\ AllowUserToAddRows = false AllowUserToDeleteRows = false AllowUserToResizeRows = false CplumnHeadersHeightSizeMode = AutoSize Columns: Code – Visible = false Products_Type – Visible = false Categories_Type – HeaderText = Type AutoSizeMode = DisplayedCells Description – AutoSizeMode = Fill Location = 12; 219 ReadOnly = True SelectionMode = FullRowSelect Size = 680; 269 |
16 |
FormAdmin |
Name = FormAdmin Size = 720; 540 StartPisition = CenterScreen Text = Администрирование магазина бытовой техники |
Рисунок 12
Обозначения:
Свойства элементов:
№ |
Имя элемента (Name) |
Свойства |
1 |
FormNewType |
ControlBox = False Size = 230; 152 StartPosition = CenterScreen Text = Новая категория |
2 |
label1 |
Location = 12; 9 Text = Ведите название: |
3 |
textBox1 |
Location = 15; 34 Size = 184; 20 |
4 |
button1 |
Location = 15; 78 Size = 75; 23 Text = Сохранить |
5 |
button2 |
Location = 124; 78 Size = 75; 23 Text = Отмена |
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ProjectApplication;
using System.Data.OleDb;
using System.Collections;
namespace ProjectApplication
{
public partial class FormAdmin : Form
{
private string dbName = "DataBase.mdb";
private OleDbConnection con;
private OleDbCommand com;
private readonly FormNewType fnt;
bool bNew_Clicked;
bool bSearch_Clicked;
string x;
public FormAdmin()
{
InitializeComponent();
fnt = new FormNewType(this);
con = new OleDbConnection("Provider=
com = new OleDbCommand("select max(Code) from Products", con);
}
private void FormAdmin_Load(object sender, EventArgs e)
{
// TODO: данная строка
кода позволяет загрузить данные в таблицу
"dataBaseDataSet.products_all"
this.products_allTableAdapter.
// TODO: данная строка кода позволяет загрузить данные в таблицу "dataBaseDataSet.Categories". При необходимости она может быть перемещена или удалена.
this.categoriesTableAdapter.
bNew_Clicked = false;
bSearch_Clicked = false;
this.bSave.Enabled = false;
this.bNewAdd.Enabled = false;
this.bDel.Enabled = false;
x = this.products_allTableAdapter.
}
// открытая функция обновления выпадающего списка, после изменения списка категорий
public void UpdateCombobox()
{
this.categoriesTableAdapter.
}
// функция вызова окна добавления новой категории товара
private void bNewType_Click(object sender, EventArgs e)
{
FormNewType fnt = new FormNewType(this);
fnt.Show();
}
// функция очистки формы для ввода данных новой записи
private void bNew_Click(object sender, EventArgs e)
{
bNew_Clicked = true;
cbType.Update();
tbCaption.Text = null;
tbDescription.Text = null;
tbPrice.Text = null;
this.bSave.Enabled = false;
this.bNewAdd.Enabled = false;
this.bDel.Enabled = false;
this.bNewAdd.Visible = true;
}
// функция добавления новой записи
private void bNewAdd_Click(object sender, EventArgs e)
{
// проверка, не пусты ли поля
if (this.tbCaption.Text == "") {MessageBox.Show("Введите нормально"); return;}
else if (this.tbDescription.Text == "") {MessageBox.Show("Введите нормально"); return;}
else if (this.tbPrice.Text == "") { MessageBox.Show("Введите нормально"); return; }
try { int t = int.Parse(this.tbPrice.Text); }
catch { MessageBox.Show("Цена должна быть числом!"); return; }
con.Open();
int rowsAffected = 0;
//Исключение ввода некорректных данных
try
{
// получение последнего индекса в таблице
com.CommandText = "SELECT MAX(Code) FROM Products";
int index = int.Parse(com.ExecuteScalar().
// добавление записи в таблицу
com.CommandText = "insert into Products values (@code, @type, @caption, @description, @price)";
com.Parameters.Add(new OleDbParameter("@code", index));
com.Parameters.Add(new OleDbParameter("@type", this.cbType.SelectedValue));
com.Parameters.Add(new OleDbParameter("@caption", this.tbCaption.Text));
com.Parameters.Add(new OleDbParameter("@description", this.tbDescription.Text));
com.Parameters.Add(new OleDbParameter("@price", int.Parse(this.tbPrice.Text)))
rowsAffected = com.ExecuteNonQuery();
}
catch
{
cbType.Update();
tbCaption.Text = null;
tbDescription.Text = null;
tbPrice.Text = null;
bSave.Enabled = false;
}
con.Close();
// проверка изменённой строки
if (rowsAffected == 1)
{
MessageBox.Show("Добавлено!");
}
else
{
MessageBox.Show("Что-то не так...");
}
//обновление DataGridView
UpdateTable();
this.bNewAdd.Visible = false;
}
// функция обновления формы, после выбора записи в DataGridView
private void dataGridView1_
{
//MessageBox.Show(" " +
dgv_admin.Rows[dgv_admin.
try
{
this.cbType.SelectedValue = dgv_admin.Rows[dgv_admin.
this.tbCaption.Text = dgv_admin.Rows[dgv_admin.
this.tbDescription.Text = dgv_admin.Rows[dgv_admin.
this.tbPrice.Text = dgv_admin.Rows[dgv_admin.
}
catch { ;}
bNew_Clicked = false;
bSearch_Clicked = false;
this.bSave.Enabled = false;
this.bNewAdd.Enabled = false;
this.bDel.Enabled = true;
}
// функция удаления записи
private void bDel_Click(object sender, EventArgs e)
{
con.Open();
//MessageBox.Show("строк " + dgv_admin.Rows.Count);
if (dgv_admin.Rows.Count == 0)
{
MessageBox.Show("Нечего удалять уже");
con.Close();
return;
}
int rowsAffected = 0;
com.CommandText
= "DELETE FROM Products WHERE Code
= " + (dgv_admin.Rows[dgv_admin.
try
{
rowsAffected = com.ExecuteNonQuery();
}
catch
{
cbType.Update();
tbCaption.Text = null;
tbDescription.Text = null;
tbPrice.Text = null;
bSave.Enabled = false;
}
con.Close();
// проверка изменённой строки
if (rowsAffected == 1)
{
MessageBox.Show("Удалено!");
bNew_Clicked = false;
}
else
{
MessageBox.Show("Что-то не так...");
}
//обновление DataGridView
UpdateTable();
//проверка, что нет записей, чтобы очистить поля ввода
if (dgv_admin.Rows.Count == 0)
{
cbType.Update();
tbCaption.Text = null;
tbDescription.Text = null;
tbPrice.Text = null;
bSave.Enabled = false;
}
}
// функция сохранения изменений записи
private void bSave_Click(object sender, EventArgs e)
{
con.Open();
int rowsAffected;
try
{
com = new OleDbCommand("UPDATE Products SET Type = '" + (cbType.SelectedValue.
rowsAffected = com.ExecuteNonQuery();
}
catch
{
MessageBox.Show("Введите нормально");
con.Close();
return;
}
// проверка изменённой строки
if (rowsAffected == 1)
{
MessageBox.Show("Сохранено успешно");
}
else
{
MessageBox.Show("Что-то не так...");
}
cbType.Update();
tbCaption.Text = null;
tbDescription.Text = null;
tbPrice.Text = null;
con.Close();
//обновление DataGridView
UpdateTable();
}
// функция обновления DataGridView
private void UpdateTable()
{
con.Open();
this.products_allTableAdapter.
dgv_admin.DataSource
= this.dataBaseDataSet.products_
con.Close();
bNew_Clicked = false;
bSearch_Clicked = false;
cbType.Update();
this.bSave.Enabled = false;
this.bNewAdd.Enabled = false;
this.bDel.Enabled = false;
dgv_admin.ClearSelection();
}
// функция, контролирующая доступность кнопок "Добавить" и "Сохранить"
private void Activate_bSave_bNewAdd(object sender, EventArgs e)
{
if (!bNew_Clicked) { bSave.Enabled = true; bNew_Clicked = false; }
else bNewAdd.Enabled = true;
if (bSearch_Clicked) bSave.Enabled = false;
if (this.tbCaption.Text == "") { bNewAdd.Enabled = false; }
else if (this.tbDescription.Text == "") { bNewAdd.Enabled = false; }
else if (this.tbPrice.Text == "") { bNewAdd.Enabled = false; }
}
// функция поиска
private void bSearch_Click(object sender, EventArgs e)
{
this.bNewAdd.Visible = false;
this.products_allTableAdapter.
if (this.bSearch.Text == "Поиск")
{
cbType.Update();
tbCaption.Text = null;
tbDescription.Text = null;
tbPrice.Text = null;
bSave.Enabled = false;
bNewAdd.Enabled = false;
bNew.Enabled = false;
bDel.Enabled = false;
bSearch_Clicked = true;
bNew_Clicked = false;
bSearchReset.Visible = true;
this.bSearch.Text = "Найти!";
return;
}
if (this.bSearch.Text == "Найти!")
{
string start = "", typ = "", cap = "", des = "", pr = "";
MessageBox.Show(this.products_
if (cbType.Text == "" && tbCaption.Text == "" && tbDescription.Text == "" && tbPrice.Text == "") { this.dataBaseDataSet.products_
else start = " WHERE ";
if (cbType.Text != "") typ += " (Categories.Type LIKE \"%" + cbType.Text + "%\")";
if (tbCaption.Text != ""){
if (cbType.Text != "") cap += " AND ";
cap += " (Caption LIKE \"%" + tbCaption.Text + "%\")";}
if (tbDescription.Text != {
if (tbDescription.Text != "") des += " AND ";
des += " (Description LIKE \"%" + tbDescription.Text + "%\")";}
if (tbPrice.Text != "")
if (tbPrice.Text != "") pr += " AND ";
try { pr += " (Price = " + int.Parse(tbPrice.Text) + ")"; }
Информация о работе Разработка автоматизированной системы «Магазин бытовой техники»