Разработка автоматизированной системы «Магазин бытовой техники»

Автор работы: Пользователь скрыл имя, 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

Вложенные файлы: 1 файл

КУРСОВАЯ.doc

— 539.50 Кб (Скачать файл)

Свойства элементов:

Имя элемента (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\Categories

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\products_all

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 = Администрирование магазина бытовой техники


 

 

      1. Вспомогательная форма.

Рисунок 12

Обозначения:

  1. FormNewType (Form) – область группировки элементов интерфейса;
  2. label1 (Label) – подписи полей ввода;
  3. textBox1 (TextBox) – выпадающий список категорий товара;
  4. button1 (Button) – поле ввода и вывода названия товара;
  5. button2 (Button) – поле ввода и вывода описания товара;

 

Свойства элементов:

 

Имя элемента (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 = Отмена


 

 

 

    1. Написание кода

      1. Форма FormAdmin (файл FormAdmin.cs)

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=Microsoft.Jet.OLEDB.4.0;Data Source=" + dbName);

        com = new OleDbCommand("select max(Code) from Products", con);

    }

 

    private void FormAdmin_Load(object sender, EventArgs e)

    {

        // TODO: данная строка кода позволяет загрузить данные в таблицу "dataBaseDataSet.products_all". При необходимости она может быть перемещена или удалена.

        this.products_allTableAdapter.Fill(this.dataBaseDataSet.products_all);

        // TODO: данная строка кода позволяет загрузить данные в таблицу "dataBaseDataSet.Categories". При необходимости она может быть перемещена или удалена.

        this.categoriesTableAdapter.Fill(this.dataBaseDataSet.Categories);

 

        bNew_Clicked = false;

        bSearch_Clicked = false;

        this.bSave.Enabled = false;

        this.bNewAdd.Enabled = false;

        this.bDel.Enabled = false;

 

        x = this.products_allTableAdapter.Adapter.SelectCommand.CommandText;

    }

 

    // открытая функция обновления выпадающего списка, после изменения списка категорий

    public void UpdateCombobox()

    {

        this.categoriesTableAdapter.Fill(this.dataBaseDataSet.Categories);

    }

 

    // функция вызова окна добавления новой категории товара

    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().ToString()) + 1;

 

            // добавление записи в таблицу

            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_SelectionChanged(object sender, EventArgs e)

    {

        //MessageBox.Show(" " + dgv_admin.Rows[dgv_admin.CurrentRow.Index].Cells[0].Value);

        try

        {

            this.cbType.SelectedValue = dgv_admin.Rows[dgv_admin.CurrentRow.Index].Cells[1].Value;

            this.tbCaption.Text = dgv_admin.Rows[dgv_admin.CurrentRow.Index].Cells[3].Value.ToString();

            this.tbDescription.Text = dgv_admin.Rows[dgv_admin.CurrentRow.Index].Cells[4].Value.ToString();

            this.tbPrice.Text = dgv_admin.Rows[dgv_admin.CurrentRow.Index].Cells[5].Value.ToString();

        }

        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.CurrentRow.Index].Cells[0].Value);

           

        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.ToString()) + "', Caption = '" + tbCaption.Text + "', Description = '" + tbDescription.Text + "', Price = " + int.Parse(this.tbPrice.Text) + " where Code = " + (dgv_admin.Rows[dgv_admin.CurrentRow.Index].Cells[0].Value), con);

            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.Fill(this.dataBaseDataSet.products_all);

        dgv_admin.DataSource = this.dataBaseDataSet.products_all;

 

        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.Adapter.SelectCommand.CommandText = x;

        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_allTableAdapter.Adapter.SelectCommand.CommandText);

        if (cbType.Text == "" && tbCaption.Text == "" && tbDescription.Text == "" && tbPrice.Text == "") { this.dataBaseDataSet.products_all.Clear(); return; }

        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) + ")"; }

Информация о работе Разработка автоматизированной системы «Магазин бытовой техники»