Главная страница
Навигация по странице:

  • Структура таблиц базы данных

  • Листинг

  • Базы данных. Варинат_4_Театр. Вариант 4 Средства разработки


    Скачать 175.9 Kb.
    НазваниеВариант 4 Средства разработки
    АнкорБазы данных
    Дата15.06.2022
    Размер175.9 Kb.
    Формат файлаdocx
    Имя файлаВаринат_4_Театр.docx
    ТипДокументы
    #593417

    Вариант № 4

    Средства разработки:

    В качестве языка программирования был выбран C# - объектно-ориентированный язык программирования. Язык входит в семью С-подобных языков. Синтаксис приближен к Java и C++. Его особенности: статистическая типизация, поддерживается полиморфизм,поддерживается перегрузка операторов,доступна делегация, атрибуты, события, обобщенные типы
    и анонимные функции. Разработка Microsoft много особенностей унаследовала у Delphi, Smalltalk и Java.

    В качестве среды разработки была выбрана Visual Studio Community 2019 - одна из версий среди линейки продуктов компании Microsoft Visual Studio, включающих интегрированную среду разработки программного обеспечения и ряд других инструментов.
    Структура таблиц базы данных theatre_bd.accdb
    Рисунок 1 –Структура таблиц

    Экранные формы программы
    Рисунок 2 –Главная форма программы




    Рисунок 3 –Дополнительные окна добавления/редактирования

    Листингпрограммы

    using System;

    using System.Data;

    using System.Windows.Forms;

    using System.Data.OleDb;
    namespace theater_app

    {
    public partial class Form1 : Form

    {
    public string connectString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\\Theater\\theater_app\\theater_app\\theatre_bd.accdb";

    public string name, dir, desc, date, count, count1, typeName, descType, respName;

    public int type;

    public bool add=false;

    public bool update = false;

    public bool add2 = false;

    public bool update2 = false;

    public int rowSelect, rowSelect2;

    public int code, code2;

    public OleDbConnection myConnection;

    OleDbDataAdapter adap;

    DataTable dt;

    public Form1()

    {

    InitializeComponent();

    myConnection = new OleDbConnection(connectString);

    myConnection.Open();

    type_table.Columns[0].Width = 70;

    name_table.Columns[0].Width = 70;

    name_table.Columns[1].MinimumWidth = 200;

    name_table.Columns[2].MinimumWidth = 100;

    name_table.Columns[3].MinimumWidth = 200;

    theatre_bdDataSet.Relations.Clear();

    //Организация связи главной и подчиненной таблицы

    theatre_bdDataSet.Relations.Add("table_relations", theatre_bdDataSet.Tables["Тип спектакля"].Columns["Код"], theatre_bdDataSet.Tables["Названия спектаклей"].Columns["Тип"]);

    name_table.MultiSelect = false;

    type_table.MultiSelect = false;

    }
    private void Form1_Load(object sender, EventArgs e)

    {

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

    this.тип_спектакляTableAdapter.Fill(this.theatre_bdDataSet.Тип_спектакля);

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

    this.названия_спектаклейTableAdapter.Fill(this.theatre_bdDataSet.Названия_спектаклей);

    }
    private void name_table_CellClick(object sender, DataGridViewCellEventArgs e)

    {

    rowSelect = e.RowIndex;

    }
    private void delete_button2_Click(object sender, EventArgs e)

    {

    if (MessageBox.Show("Вы действительно хотите удалить эту запись из базы данных?", "Подтверждение", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK)

    {

    string query = "DELETE FROM [Тип спектакля] WHERE [Код] = " + Convert.ToInt32(type_table.Rows[rowSelect2].Cells[0].Value);
    // создаем объект OleDbCommand для выполнения запроса к БД MS Access

    OleDbCommand command = new OleDbCommand(query, myConnection);

    // выполняем запрос к MS Access

    command.ExecuteNonQuery();

    show_new_data2();

    }
    }
    private void delete_button1_Click(object sender, EventArgs e)

    {

    if(MessageBox.Show("Вы действительно хотите удалить эту запись из базы данных?", "Подтверждение", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK)

    {

    string query = "DELETE FROM [Названия спектаклей] WHERE [Код] = "+ Convert.ToInt32(name_table.Rows[rowSelect].Cells[0].Value);
    // создаем объект OleDbCommand для выполнения запроса к БД MS Access

    OleDbCommand command = new OleDbCommand(query, myConnection);

    // выполняем запрос к MS Access

    command.ExecuteNonQuery();

    show_new_data();

    }

    }
    private void add_button2_Click(object sender, EventArgs e)

    {

    add2 = true;

    edit_form2 ef2 = new edit_form2();

    ef2.Owner = this;

    ef2.Show();

    }
    private void update_button2_Click(object sender, EventArgs e)

    {

    update2 = true;

    typeName = type_table.Rows[rowSelect2].Cells[1].Value.ToString();

    descType = type_table.Rows[rowSelect2].Cells[2].Value.ToString();

    respName = type_table.Rows[rowSelect2].Cells[3].Value.ToString();

    code2 = Convert.ToInt32(type_table.Rows[rowSelect2].Cells[0].Value);

    edit_form2 ef2 = new edit_form2();

    ef2.Owner = this;

    ef2.Show();

    }
    private void type_table_CellClick(object sender, DataGridViewCellEventArgs e)

    {

    rowSelect2 = e.RowIndex;

    }
    private void search_textBox1_TextChanged(object sender, EventArgs e)

    {

    adap = new OleDbDataAdapter("select * from [Названия спектаклей] where [Название] like '" + search_textBox1.Text + "%'", myConnection);

    dt = new DataTable();

    adap.Fill(dt);

    name_table.DataSource = dt;

    }
    private void Form1_FormClosing(object sender, FormClosingEventArgs e)

    {

    myConnection.Close();

    }
    private void add_button1_Click(object sender, EventArgs e)

    {

    add = true;

    edit_form1 ef1 = new edit_form1();

    ef1.Owner = this;

    ef1.Show();

    }
    public void show_new_data()

    {

    string selectquery = "SELECT * FROM [Названия спектаклей]";

    adap = new OleDbDataAdapter(selectquery, myConnection);

    dt = new DataTable();

    adap.Fill(dt);

    name_table.DataSource = dt;

    }
    public void show_new_data2()

    {

    string selectquery = "SELECT * FROM [Тип спектакля]";

    adap = new OleDbDataAdapter(selectquery, myConnection);

    dt = new DataTable();

    adap.Fill(dt);

    type_table.DataSource = dt;
    }

    private void update_button1_Click(object sender, EventArgs e)

    {

    update = true;

    name = name_table.Rows[rowSelect].Cells[1].Value.ToString();

    dir = name_table.Rows[rowSelect].Cells[2].Value.ToString();

    desc = name_table.Rows[rowSelect].Cells[3].Value.ToString();

    date = name_table.Rows[rowSelect].Cells[4].Value.ToString();

    type = Convert.ToInt32(name_table.Rows[rowSelect].Cells[5].Value);

    count = name_table.Rows[rowSelect].Cells[6].Value.ToString();

    count1 = name_table.Rows[rowSelect].Cells[7].Value.ToString();

    code= Convert.ToInt32(name_table.Rows[rowSelect].Cells[0].Value);

    edit_form1 ef1 = new edit_form1();

    ef1.Owner = this;

    ef1.Show();

    }

    }

    }
    using System;

    using System.Windows.Forms;

    using System.Data.OleDb;
    namespace theater_app

    {

    public partial class edit_form1 : Form

    {
    public edit_form1()

    {

    InitializeComponent();

    }
    private void edit_form1_Load(object sender, EventArgs e)

    {

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

    this.тип_спектакляTableAdapter.Fill(this.theatre_bdDataSet2.Тип_спектакля);

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

    this.тип_спектакляTableAdapter.Fill(this.theatre_bdDataSet1.Тип_спектакля);

    Form1 main = this.Owner as Form1;

    if (main.update)

    {

    name_textBox.Text = main.name;

    dir_textBox.Text = main.dir;

    desc_textBox.Text = main.desc;

    dateTimePicker.Value = DateTime.Parse(main.date);

    type_comboBox.SelectedIndex = main.type- 1;

    countTicket_textBox.Text = main.count;

    countTicketSale_textBox.Text = main.count1;

    }

    }
    private void button1_Click(object sender, EventArgs e)

    {

    Form1 main = this.Owner as Form1;
    if (main.add)

    {

    // текст запроса

    Int32 type = type_comboBox.SelectedIndex + 1;

    string query = "INSERT INTO [Названия спектаклей] ([Название], [Режисер], [Описание], [Дата], [Тип], [Количество билетов], [Количество оставшихся билетов]) VALUES ('"

    + name_textBox.Text + "', '" + dir_textBox.Text + "','" + desc_textBox.Text + "', '" + dateTimePicker.Text + "', " + type + ", " + Convert.ToInt32(countTicket_textBox.Text)

    + ", " + Convert.ToInt32(countTicketSale_textBox.Text) + ")";
    // создаем объект OleDbCommand для выполнения запроса к БД MS Access

    OleDbCommand command = new OleDbCommand(query, main.myConnection);

    // выполняем запрос к MS Access

    command.ExecuteNonQuery();

    main.add = false;

    }

    if (main.update)

    {

    // текст запроса

    Int32 type = type_comboBox.SelectedIndex + 1;

    string query = "UPDATE [Названия спектаклей] SET [Название] = '"+name_textBox.Text

    + "', [Режисер] = '" + dir_textBox.Text + "', [Описание] = '" + desc_textBox.Text

    + "', [Дата] = '" + dateTimePicker.Text + "', [Тип] = " + type + ", [Количество билетов] = "

    + Convert.ToInt32(countTicket_textBox.Text) + ", [Количество оставшихся билетов] ="

    + Convert.ToInt32(countTicketSale_textBox.Text) + " WHERE [Код] = "+main.code;
    // создаем объект OleDbCommand для выполнения запроса к БД MS Access

    OleDbCommand command = new OleDbCommand(query, main.myConnection);

    // выполняем запрос к MS Access

    command.ExecuteNonQuery();

    main.update = false;

    }
    main.add = false;

    main.update = false;

    main.show_new_data();

    this.Close();

    }
    private void edit_form1_FormClosed(object sender, FormClosedEventArgs e)

    {

    Form1 main = this.Owner as Form1;

    main.add = false;

    main.update = false;

    }
    private void countTicket_textBox_TextChanged(object sender, EventArgs e)

    {

    }
    private void countTicket_textBox_KeyPress(object sender, KeyPressEventArgs e)

    {

    char number = e.KeyChar;

    if (!Char.IsDigit(number))

    {

    e.Handled = true;

    }

    }

    private void countTicketSale_textBox_KeyPress(object sender, KeyPressEventArgs e)

    {

    char number = e.KeyChar;

    if (!Char.IsDigit(number))

    {

    e.Handled = true;

    }

    }

    }

    }

    using System;

    using System.Windows.Forms;

    using System.Data.OleDb;
    namespace theater_app

    {

    public partial class edit_form2 : Form

    {

    public edit_form2()

    {

    InitializeComponent();

    }
    private void edit_form2_Load(object sender, EventArgs e)

    {

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

    this.тип_спектакляTableAdapter.Fill(this.theatre_bdDataSet1.Тип_спектакля);

    Form1 main = this.Owner as Form1;

    if (main.update2)

    {

    typeName_textBox.Text = main.typeName;

    desc_textBox2.Text = main.descType;

    resp_textBox2.Text = main.respName;

    }

    }
    private void button1_Click(object sender, EventArgs e)

    {

    Form1 main = this.Owner as Form1;

    if (main.add2)

    {

    string query = "INSERT INTO [Тип спектакля] ([Тип], [Описание], [Ответственный за направление]) VALUES ('"

    + typeName_textBox.Text + "', '" + desc_textBox2.Text + "','" + resp_textBox2.Text + "')";
    // создаем объект OleDbCommand для выполнения запроса к БД MS Access

    OleDbCommand command = new OleDbCommand(query, main.myConnection);

    // выполняем запрос к MS Access

    command.ExecuteNonQuery();

    main.add2 = false;

    }

    if (main.update2)

    {

    string query = "UPDATE [Тип спектакля] SET [Тип] = '" + typeName_textBox.Text

    + "', [Описание] = '" + desc_textBox2.Text + "', [Ответственный за направление] = '"

    + resp_textBox2.Text + "' WHERE [Код] = " + main.code2;
    // создаем объект OleDbCommand для выполнения запроса к БД MS Access

    OleDbCommand command = new OleDbCommand(query, main.myConnection);

    // выполняем запрос к MS Access

    command.ExecuteNonQuery();

    main.update2 = false;

    }

    main.add = false;

    main.update = false;

    main.show_new_data2();

    this.Close();

    }

    }

    }


    написать администратору сайта