Проектирование и создание базы данных предметной области
Разработка приложения, позволяющего автоматизировать документооборот предприятия по списанию основных средств. Мероприятия по защите и обеспечению целостности базы данных. Разработка клиентского приложения. Запросы к базе данных, руководство пользователя.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 14.01.2015 |
Размер файла | 700,0 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Министерство образования и науки Российской Федерации
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«ОРЕНБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»
Факультет информационных технологий
Кафедра программного обеспечения вычислительной
техники и автоматизированных систем
КУРСОВАЯ РАБОТА
по дисциплине «Базы данных»
Проектирование и создание базы данных предметной области
ОГУ 2301000.62.5413.125 ПЗ
Руководитель
_____________ Щелоков С.А.
Исполнитель
студент гр. 11 Пинж(б)РПиС
___________ Емельянов А.В. "____"_______________2013г.
Оренбург 2013
Министерство образования и науки Российской Федерации
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«ОРЕНБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»
Факультет информационных технологий
Кафедра программного обеспечения вычислительной техники
и автоматизированных систем
Задание на курсовую работу
"Проектирование и создание базы данных предметной области"
Списание основных средств
Исходные данные: Вариант №6
Разработать: Информационно-логическую модель предметной области по нотациям Ричарда Баркера;
Даталогическую модель реляционной БД, нормализованную до НФБК в СУБД SQL Server 2005 в виде диаграммы схемы отношений;
Запросы к БД на уровне представлений в СУБД SQL Server 2005;
Мероприятия по защите и обеспечению целостности базы данных;
Приложение интерфейса для SQL-сервера базы данных на языке программирования С# в программной среде Visual Studio 2005;
Инструкцию по администрированию и пользованию БД.
Дата выдачи задания « » 2013г.
Руководитель Щелоков С.А.
Исполнитель студент группы 11 Пинж(б)
Емельянов А.В.
____________
Срок защиты работы « 27 » 12 2013г.
Аннотация
Пояснительная записка содержит 23 страницы, включает 11 рисунков, 1 таблицу, 4 источника, 1 приложение. Практическая часть выполнена в среде разработки MS Visual Studio 2010 и представляет проект формата *.sln. База данных спроектирована в MS SQL Server Express 2008 R2.
В данной работе спроектировано приложение, позволяющее автоматизировать документооборот предприятия по списанию основных средств.
Содержание
Введение
1. Проектирование базы данных
1.1 Описание предметной области
1.2 Анализ предметной области
1.3 Информационно-логическая модель
1.4 Даталогическая модель
1.5 Физическое проектирование
1.6 Мероприятия по защите и обеспечению целостности базы данных
2. Разработка клиентского приложения
2.1 Запросы к базе данных
2.2 Руководство пользователя
2.2.1 Системные требования
2.2.2 Работа с приложением
Заключение
Список использованной литературы
Приложение А
Введение
С ростом количества информации, необходимой для жизнедеятельности человека, возникает острая потребность в автоматизации ее обработки и решения вопроса об организации хранения необходимых данных. За все время существования данной проблемы было предложено множество различных решений. Одним из современных и наиболее востребованным способом является использование баз данных (БД). Современные системы управления базами данных (СУБД) предоставляют обширный перечень возможностей, как разработчикам, так и рядовым пользователя.
В курсовой работе ставиться задача - разработать проект базы данных для автоматизации документооборота в сфере обслуживания клиентов. В качестве основного инструмента должно быть представлено клиентское приложение, выполняющее всю основную бизнес-логику предметной области.
В качестве средств разработки будут использоваться СУБД Microsoft SQL Server 2008 R2, а также интегрированная среда разработки Microsoft Visual Studio 2010. За основы выбран язык программирования C# 3.0.
1. Проектирование базы данных
1.1 Описание предметной области
Основные средства - это имущество организации, предприятия со сроком полезного использования. На предприятии (Код, Название, Краткое название) имеется перечень основных средств разного типа (мебель, вычислительная техника, оборудование, инструменты и т.п.), закрепленных за подразделениями предприятия. Закрепление осуществляется на основании определенного документа, имеющего номер, дату, в нем указан срок закрепления средства за подразделением. При списании имущества предприятия создается комиссия, в которую входят руководитель предприятия, главный бухгалтер, главный инженер, главный энергетик, главный механик, руководитель подразделения, где находится средство, материально ответственный в подразделении. При списании средства формируется документ, имеющий номер, название, дату и подписи членов комиссии. В каждом документе может быть указано сразу несколько списываемых средств, для каждого указывается:
- инвентарный номер;
- название;
- принадлежностью к типу;
- дата постановки на учет в подразделении;
- плановый срок эксплуатации (год, месяц);
- балансовая стоимость (в рублях), определяемая при постановке средства на учет.
Для каждого средства также указывается дефект, ставший причиной списания (Код, Название) - износ, поломка, не имеющая восстановления, утрата и др.
1.2 Анализ предметной области
Для определения всех необходимых требований к разрабатываемой БД достаточно обратиться к описанию предметной области. Первым шагом станет выявления информационных потоков (рисунок 1). Затем выясним набор действий, выполняемых гипотетической фирмой, используя функциональную модель, построенной по технологии САПР IDEF, созданную с помощью CASE-средства Bpwin (рисунок 2), а более подробно описание работ или действий, проводимых на предприятие, показано в функциональной модели по методологии IDEF0 (рисунок 3).
база данные запрос пользователь
Размещено на http://www.allbest.ru/
Рисунок 1 - Схема информационных потоков
Рисунок 2 - Модель IDEF0
Рисунок 3 - Детальная модель IDEF0
В дополнение к приведенным диаграммам можно добавить модель процессов на предприятии (рисунок 4), а так же модель документооборота (рисунок 5).
Рисунок 4 - Модель IDEF3
Рисунок 5 - Детальная модель DFD
1.3 Информационно-логическая модель
На начальном этапе проектирования, необходимо абстрагировать от конкретных СУБД и аппаратных средств. Для этого существует множество подходов, но в данной работе для отражения основного представления БД использовалась ER-диаграмма по нотации Ричарда Бракера (рисунок 6). Она достаточно точно позволяет отразить все сущности, выделенные при анализе предметной области.
Размещено на http://www.allbest.ru/
Рисунок 6 - ER - диаграмма
1.4 Даталогическая модель
Даталогическая модель является моделью логического уровня и представляет собой отображение логических связей между элементами данных. Эта модель строится в терминах информационных единиц, допустимых в конкретной СУБД. На данную модель влияют конкретные факторы произошедшие на этапе разработки, как клиентского приложения, так и самой БД. Сущности, созданные непосредственно в MS SQL Server представлены на рисунке 7.
Рисунок 7 - Даталогическая модель базы данных
1.5 Физическое проектирование
Каждое поле таблицы в MS SQL Server имеют определенный формат (тип данных) при правильном подборе которых можно значительно сократить объем занимаемого дискового пространства файлам базы данных. Тип определяется особенностями реального представления хранящейся в поле информации. Так количество символов в строке должно быть соразмерно потребностям. Описание типов данных использованных в таблицах, а также назначение поля представлены в таблице 1.
Таблица 1 - Типы данных, использованные в таблицах
Таблица |
Поле |
Ключ |
Тип |
Описание |
|
Предприятие |
Код_предприятия |
PK |
int |
Идентификатор строки |
|
Название |
varchar(MAX) |
Полное название предприятия |
|||
Направление_деятельности |
varchar(MAX) |
Отрасль деятельности |
|||
Отдел |
Код_отдела |
PK |
int |
Идентификатор строки |
|
Код_предприятия |
FK |
varchar(MAX) |
Идентификатор предприятия |
||
Название |
varchar(MAX) |
Полное название службы |
|||
Основные средства |
Инвентарный_номер |
PK |
int |
Идентификатор строки |
|
Код_отдела |
FK |
int |
Идентификатор отдела |
||
Код_типа |
FK |
int |
Идентификатор типа |
||
Наименование |
varchar(MAX) |
Наименование средства |
|||
Номер_документа_з |
FK |
int |
Номер документа о закреплении |
||
Списание_до |
datetime |
Плановый срок эксплуатации |
|||
Стоимость |
int |
Балансовая стоимость |
|||
Номер_документа_с |
FK |
int |
Номер документа о списании |
||
Код_причины |
FK |
int |
Код причины списания |
||
Код комиссии |
FK |
int |
Код комиссии по списанию |
||
Сотрудники |
Код_сотрудника |
PK |
int |
Идентификатор строки |
|
ФИО |
varchar(MAX) |
ФИО сотрудники |
|||
Код_отдела |
FK |
int |
Код отдела |
||
Код_должности |
FK |
int |
Код должности |
||
Должности |
Код_должности |
PK |
int |
Идентификатор строки |
|
Название |
varchar(MAX) |
Название должности |
|||
Обязанности |
varchar(MAX) |
Обязанности |
|||
Комиссиия |
Код_комиссии |
PK |
int |
Идентификатор строки |
|
Номер_документа_с |
FK |
int |
Номер документа о списании |
||
Код_сотрудника |
varchar(MAX) |
Код сотрудника |
|||
Типы средств |
Код_типа |
PK |
int |
Идентификатор строки |
|
Название |
varchar(MAX) |
Предприятия |
|||
Причины списания |
Код_причины |
PK |
int |
Идентификатор строки |
|
Формулировка |
varchar(MAX) |
Формулировка причины списания |
|||
Документы о закреплении |
Номер_документа_з |
PK |
int |
Идентификатор строки |
|
Дата |
datetime |
Дата закрепления средства |
|||
Документы о списании |
Номер_документа_с |
PK |
int |
Идентификатор строки |
|
Дата |
datetime |
Дата списания средства |
1.6 Мероприятия по защите и обеспечению целостности базы данных
Основные задачи по обеспечению целостности и адекватности базы данных возложены на клиентское приложение. Проверка вводимых значений осуществляется по типу данных, в таблице с датами вида «период с __ до __» невозможно поставить вторую дату меньше первой. Всем датам принудительно присваивается текущее системное время. Доступ к базе данных осуществляется на уровне идентификации Windows, таким образом, каждый пользователь, обладающей учетной записью на текущем компьютере, обладает правом на работу с базой данной.
2. Разработка клиентского приложения
2.1 Запросы к базе данных
Разработанное приложение выполняет множество запросов к БД. Среди них и вставка, и удаление, и извлечение данных. Также некоторые запросы выполняют соединение таблиц.
Запрос на заполнение таблицы «Основные средства»:
SELECT[Основные средства].Инвентарный_номер, [Основные средства].Код_отдела, [Основные средства].Код_типа, [Основные средства].Наименование, [Основные средства].Номер_документа_з, [Основные средства].Списание_до, [Основные средства].Стоимость, [Основные средства].Номер_документа_с, [Основные средства].Код_причины, [Основные средства].Код_комиссии, Отдел.Название, Предприятие.Название AS Expr1, [Типы средств].Название AS Expr2, [Документы о закреплении].Дата, [Документы о списании].Дата AS Expr3, [Причины списания].Формулировка
FROM [Основные средства]
INNER JOIN Отдел
ON [Основные средства].Код_отдела = Отдел.Код_отдела
INNER JOIN Предприятие
ON Отдел.Код_предприятия = Предприятие.Код_предприятия
INNER JOIN [Типы средств]
ON [Основные средства].Код_типа = [Типы средств].Код_типа
INNER JOIN [Документы о закреплении]
ON [Основные средства].Номер_документа_з = [Документы о закреплении].Номер_документа_з
LEFT OUTER JOIN [Причины списания]
ON [Основные средства].Код_причины = [Причины списания].Код_причины OR [Основные средства].Код_причины = NULL
LEFT OUTER JOIN [Документы о списании]
ON [Основные средства].Номер_документа_с = [Документы о списании].Номер_документа_с OR [Основные средства].Номер_документа_с = NULL
Запрос на подсчёт количества одноимённых средств, списанных в течении заданного периода:
SELECT COUNT (Наименование) AS 'Количество'
FROM [Основные средства]
INNER JOIN [Документы о списании]
ON [Основные средства].Номер_документа_с = [Документы о списании].Номер_документа_с
WHERE [Наименование] = @name AND [Документы о списании].Дата > @date1 AND [Документы о списании].Дата < @date2
Запрос на выборку списка участников комиссии, по дате проведения комиссии:
SELECT [Комиссия].[Номер_документа_с], [Сотрудники].[ФИО], [Должности].[Название], [Предприятие].[Название], [Отдел].[Название]
FROM [Комиссия]
INNER JOIN [Документы о списании]
ON [Комиссия].[Номер_документа_с] = [Документы о списании].[Номер_документа_с] INNER JOIN [Сотрудники]
ON [Комиссия].[Код_сотрудника] = [Сотрудники].[Код_сотрудника]
INNER JOIN [Должности]
ON [Сотрудники].[Код_должности] = [Должности].[Код_должности]
INNER JOIN [Отдел]
ON [Сотрудники].[Код_отдела] = [Отдел].[Код_отдела]
INNER JOIN [Предприятие]
ON [Отдел].[Код_предприятия] = [Предприятие].[Код_предприятия]
WHERE ([Документы о списании].[Дата] = @date)
Запрос на выборку списка основных средств, числящихся в указанном отделе, в указанную дату:
SELECT [Инвентарный_номер], [Наименование], [Типы средств].[Название], [Списание_до], [Стоимость]
FROM [Основные средства]
INNER JOIN [Типы средств]
ON [Основные средства].[Код_типа] = [Типы средств].[Код_типа]
INNER JOIN [Документы о закреплении]
ON [Основные средства].[Номер_документа_з] = [Документы о закреплении].[Номер_документа_з]
LEFT JOIN [Документы о списании]
ON (([Основные средства].[Номер_документа_с] = [Документы о списании].[Номер_документа_с]) AND ([Документы о списании].[Дата] > @date)) WHERE ([Код_отдела] = @id) AND ([Документы о закреплении].[Дата] < @date)
2.2 Руководство пользователя
2.2.1 Системные требования
Разработанная программа относительно нетребовательна к аппаратным ресурсам компьютера. У пользователя должны быть установлен MS .Net Framework версии 3.5 и выше. Также желательно использовать операционную систему Windows XP SP3 и выше.
2.2.2 Работа с приложением
При запуске программы появляется главное окно, на котором размещены управляющие кнопки. Для большего удобства кнопки разделены по категориям (рисунок 8).
Рисунок 8 - Главная форма
Кнопки в поле «Редактирование базы данных» отвечают за вывод на экран таблицы с возможностью редактирования данных. Для удобства пользования поля, соответствующие аналогичным полям в таблицах, связанных по ключу, редактируются кликом мыши и непосредственным выбором необходимого значения из появившейся формы (рисунок 9)
Рисунок 9 - Редактирование данных
Кнопки в поле «Выборка данных» открывают формы с независимыми таблицами и средствами выбора входных параметров для запроса. Отображение запрошенной информации осуществляется по нажатию кнопки.
Рисунок 10 - Список средств на заданную дату для заданного отдела
Рисунок 11 - Количество одноимённых средств, списанных за заданный промежуток времени
Рисунок 12 - Состав комиссии на заданную дату
Заключение
В ходе работы удалось убедиться в богатых возможностях MS SQL Server 2008 и удобства его использования в разных сферах, в частности для автоматизации документооборота предприятия какой-либо предметной области.
Все цели и задачи, поставленные перед работой, были выполнены практически в полной мере. Разработанная база данных полностью отражает предметную область, а клиентское приложение обладает достаточным минимумом функций по работе с подключенной базой и удобным пользовательским интерфейсом.
Список использованной литературы
1 Пирогов, В.Ю. MS SQL Server 2005. Программирование клиент-серверных приложений. - СПб.: БХВ-Петербург, 2006. - 336 с.: ил.
2 Клайн, Кевин. Справочник по SQL. - М.: КУДИЦ-Образ, 2006 - 832с.
3 Эндрю, Троелсен. Язык программирования C# 2010 и платформа .NET 4.0, 5-е изд.: Пер. с англ. - М.: ООО «И.Д. Вильямс», 2011. - 1392с.
4 Пушников А.Ю. Введение в системы управления базами данных. Часть 1. Реляционная модель данных: Учебное пособие/Изд-е Башкирского ун-та. - Уфа, 1999. - 108 с. - ISBN 5-7477-0350-1.
Приложение А
Листинг кода программ
//Наиболее сложная форма - Основные средства
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;
namespace SpisanieSredstv
{
public partial class FormOSr : Form
{
public bool select;
public FormOSr()
{
InitializeComponent();
}
private void основные_средстваBindingNavigatorSaveItem_Click(object sender, EventArgs e)
{
this.Validate();
this.основные_средстваBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.автоматизация_документооборота_по_списанию_основных_средств_предприятияDataSet);
}
private void FormOSr_Load(object sender, EventArgs e)
{
// TODO: данная строка кода позволяет загрузить данные в таблицу "автоматизация_документооборота_по_списанию_основных_средств_предприятияDataSet.Основные_средства". При необходимости она может быть перемещена или удалена.
this.основные_средстваTableAdapter.Fill(this.автоматизация_документооборота_по_списанию_основных_средств_предприятияDataSet.Основные_средства);
}
private void основные_средстваDataGridView_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 2)
{
FormOtdel fp = new FormOtdel(true);
fp.Owner = this;
if (fp.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
string[] buf = ((string)this.Tag).Split('+');
основные_средстваDataGridView.Rows[e.RowIndex].Cells["dataGridViewTextBoxColumn2"].Value = Convert.ToInt32(buf[0]);
основные_средстваDataGridView.Rows[e.RowIndex].Cells["Название"].Value = buf[1];
основные_средстваDataGridView.Rows[e.RowIndex].Cells["Expr1"].Value = buf[2];
}
}
if (e.ColumnIndex == 5)
{
FormTip fp = new FormTip(true);
fp.Owner = this;
if (fp.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
string[] buf = ((string)this.Tag).Split('+');
основные_средстваDataGridView.Rows[e.RowIndex].Cells["dataGridViewTextBoxColumn3"].Value = Convert.ToInt32(buf[0]);
основные_средстваDataGridView.Rows[e.RowIndex].Cells["Название_типа"].Value = buf[1];
}
}
if (e.ColumnIndex == 7)
{
FormDocZ fp = new FormDocZ(true);
fp.Owner = this;
if (fp.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
string[] buf = ((string)this.Tag).Split('+');
основные_средстваDataGridView.Rows[e.RowIndex].Cells["dataGridViewTextBoxColumn5"].Value = Convert.ToInt32(buf[0]);
основные_средстваDataGridView.Rows[e.RowIndex].Cells["Дата"].Value = buf[1];
}
}
if (e.ColumnIndex == 11)
{
FormDocS fp = new FormDocS(true);
fp.Owner = this;
if (fp.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
string[] buf = ((string)this.Tag).Split('+');
основные_средстваDataGridView.Rows[e.RowIndex].Cells["dataGridViewTextBoxColumn8"].Value = Convert.ToInt32(buf[0]);
основные_средстваDataGridView.Rows[e.RowIndex].Cells["Дата_списания"].Value = buf[1];
}
}
if (e.ColumnIndex == 14)
{
FormPrich fp = new FormPrich(true);
fp.Owner = this;
if (fp.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
string[] buf = ((string)this.Tag).Split('+');
основные_средстваDataGridView.Rows[e.RowIndex].Cells["dataGridViewTextBoxColumn9"].Value = Convert.ToInt32(buf[0]);
основные_средстваDataGridView.Rows[e.RowIndex].Cells["Формулировка"].Value = buf[1];
}
}
}
}
}
//запрос на выборку средств
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 System.Data.SqlClient;
namespace SpisanieSredstv
{
public partial class FormSpisokZ : Form
{
public string conStr = "Data Source=PC\\SQLEXPRESS;Initial Catalog=\"Автоматизация документооборота по списанию основных средств предприятия\";Integrated Security=True";
public SqlConnection conn;
public List<int> OfficeID;
public List<int> ServiceID;
public FormSpisokZ()
{
InitializeComponent();
dataGridView1.RowHeadersVisible = false;
OfficeID = new List<int>();
ServiceID = new List<int>();
conn = new SqlConnection(conStr);
SqlCommand myCom = conn.CreateCommand();
myCom.CommandText = "SELECT [Код_предприятия], [Название] FROM [Предприятие]";
conn.Open();
var reader = myCom.ExecuteReader();
while (reader.Read())
{
comboBox1.Items.Add(reader.GetString(1));
OfficeID.Add(reader.GetInt32(0));
}
reader.Close();
conn.Close();
comboBox1.SelectedIndex = 0;
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
comboBox2.Items.Clear();
//dataGridView1.Rows.Clear();
comboBox2.Text = null;
ServiceID.Clear();
SqlCommand myCom = conn.CreateCommand();
myCom.CommandText = "SELECT [Код_отдела], [Название] FROM [Отдел] WHERE [Код_предприятия] = @id";
myCom.Parameters.Add("@id", SqlDbType.Int);
myCom.Parameters["@id"].Value = OfficeID[comboBox1.SelectedIndex];
conn.Open();
var reader = myCom.ExecuteReader();
while (reader.Read())
{
comboBox2.Items.Add(reader.GetString(1));
ServiceID.Add(reader.GetInt32(0));
}
reader.Close();
conn.Close();
if(ServiceID.Count > 0)
comboBox2.SelectedIndex = 0;
}
private void button1_Click(object sender, EventArgs e)
{
if (ServiceID.Count == 0) return;
SqlCommand myCom = conn.CreateCommand();
myCom.CommandText = "SELECT [Инвентарный_номер], [Наименование], [Типы средств].[Название], [Списание_до], [Стоимость] FROM [Основные средства] INNER JOIN [Типы средств] ON [Основные средства].[Код_типа] = [Типы средств].[Код_типа] INNER JOIN [Документы о закреплении] ON [Основные средства].[Номер_документа_з] = [Документы о закреплении].[Номер_документа_з] LEFT JOIN [Документы о списании] ON (([Основные средства].[Номер_документа_с] = [Документы о списании].[Номер_документа_с]) AND ([Документы о списании].[Дата] > @date)) WHERE ([Код_отдела] = @id) AND ([Документы о закреплении].[Дата] < @date)";
myCom.Parameters.Add("@id", SqlDbType.Int);
myCom.Parameters["@id"].Value = ServiceID[comboBox2.SelectedIndex];
myCom.Parameters.Add("@date", SqlDbType.DateTime);
myCom.Parameters["@date"].Value = dateTimePicker1.Value.Date;
SqlDataAdapter dataAdapter = new SqlDataAdapter(myCom);
DataSet ds = new DataSet();
dataAdapter.Fill(ds);
conn.Close();
dataGridView1.DataSource = ds.Tables[0].DefaultView;
}
}
}
//Запрос на подсчёт однотипных средств
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 System.Data.SqlClient;
namespace SpisanieSredstv
{
public partial class FormDinamikaZ : Form
{
public string conStr = "Data Source=PC\\SQLEXPRESS;Initial Catalog=\"Автоматизация документооборота по списанию основных средств предприятия\";Integrated Security=True";
public SqlConnection conn;
public FormDinamikaZ()
{
InitializeComponent();
dataGridView1.RowHeadersVisible = false;
dataGridView1.ColumnHeadersVisible = false;
dateTimePicker2.MinDate = dateTimePicker1.Value;
}
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text == null) return;
conn = new SqlConnection(conStr);
SqlCommand myCom = conn.CreateCommand();
myCom.CommandText = "SELECT COUNT (Наименование) AS 'Количество' FROM [Основные средства] INNER JOIN [Документы о списании] ON [Основные средства].Номер_документа_с = [Документы о списании].Номер_документа_с WHERE [Наименование] = @name AND [Документы о списании].Дата > @date1 AND [Документы о списании].Дата < @date2";
myCom.Parameters.Add("@name", SqlDbType.VarChar);
myCom.Parameters["@name"].Value = textBox1.Text;
myCom.Parameters.Add("@date1", SqlDbType.DateTime);
myCom.Parameters["@date1"].Value = dateTimePicker1.Value.Date;
myCom.Parameters.Add("@date2", SqlDbType.DateTime);
myCom.Parameters["@date2"].Value = dateTimePicker2.Value.Date;
SqlDataAdapter dataAdapter = new SqlDataAdapter(myCom);
DataSet ds = new DataSet();
dataAdapter.Fill(ds);
conn.Close();
dataGridView1.DataSource = ds.Tables[0].DefaultView;
textBox2.Text = Convert.ToString(dataGridView1.Rows[0].Cells[0].Value);
}
private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
{
dateTimePicker2.MinDate = dateTimePicker1.Value;
}
}
}
// Запрос на выборку участников комиссии
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 System.Data.SqlClient;
namespace SpisanieSredstv
{
public partial class FormKomZ : Form
{
public string conStr = "Data Source=PC\\SQLEXPRESS;Initial Catalog=\"Автоматизация документооборота по списанию основных средств предприятия\";Integrated Security=True";
public SqlConnection conn;
// public List<int> OfficeID;
// public List<int> ServiceID;
public FormKomZ()
{
InitializeComponent();
dataGridView1.RowHeadersVisible = false;
conn = new SqlConnection(conStr);
SqlCommand myCom = conn.CreateCommand();
}
private void button1_Click(object sender, EventArgs e)
{
dataGridView1.RowHeadersVisible = false;
SqlCommand myCom = conn.CreateCommand();
myCom.CommandText = "SELECT [Комиссия].[Номер_документа_с], [Сотрудники].[ФИО], [Должности].[Название], [Предприятие].[Название], [Отдел].[Название] FROM [Комиссия] INNER JOIN [Документы о списании] ON [Комиссия].[Номер_документа_с] = [Документы о списании].[Номер_документа_с] INNER JOIN [Сотрудники] ON [Комиссия].[Код_сотрудника] = [Сотрудники].[Код_сотрудника] INNER JOIN [Должности] ON [Сотрудники].[Код_должности] = [Должности].[Код_должности] INNER JOIN [Отдел] ON [Сотрудники].[Код_отдела] = [Отдел].[Код_отдела] INNER JOIN [Предприятие] ON [Отдел].[Код_предприятия] = [Предприятие].[Код_предприятия] WHERE ([Документы о списании].[Дата] = @date) ";
myCom.Parameters.Add("@date", SqlDbType.DateTime);
myCom.Parameters["@date"].Value = dateTimePicker1.Value.Date;
SqlDataAdapter dataAdapter = new SqlDataAdapter(myCom);
DataSet ds = new DataSet();
dataAdapter.Fill(ds);
conn.Close();
dataGridView1.DataSource = ds.Tables[0].DefaultView;
}
}
}
Размещено на Allbest.ru
Подобные документы
Автоматизация системы снятия показаний счетчиков энергии. Разработка базы данных и клиентского приложения для структур жилищно-коммунального хозяйства, занимающихся составлением квитанций. Описание предметной области. Тестирование клиентского приложения.
курсовая работа [953,3 K], добавлен 01.09.2016Анализ данных предметной области. Информационно-логическая модель базы данных. Физическое проектирование и мероприятия по защите и обеспечению целостности базы данных. Приложение интерфейса для SQL-сервера базы данных на языке программирования Delphi.
курсовая работа [2,2 M], добавлен 30.05.2013Понятие баз данных и принципы проектирования информационных систем. Разработка программы для отслеживания финансовой стороны работы компании в среде Delphi 7. Создание таблиц и схемы данных. Разработка клиентского приложения и процедуры добавления данных.
курсовая работа [1,4 M], добавлен 25.04.2012Инфологическая и даталогическая модели предметной области. Проектирование функциональной структуры приложения, защиты базы данных. Алгоритмы решения задачи и их реализация. Разработка инструкций для сопровождающего программиста и для пользователя.
курсовая работа [2,5 M], добавлен 20.11.2013Рассмотрение теоретических основ проектирования. Анализ предметной области и разработка таблиц базы данных. Заполнение таблиц, поиск данных с помощью фильтра. Создание форм, разработка запросов. Создание и настройка отчетов, составление приложения.
курсовая работа [2,8 M], добавлен 01.06.2014Формирование входных и выходных данных, SQL–скрипт генерации таблиц базы данных. Создание интерфейса программного приложения и проектирование форм базы данных. Требования к аппаратно–программному обеспечению. Инструкции по установке и эксплуатации.
курсовая работа [1,6 M], добавлен 08.02.2013- Создание защищенного приложения для ведения учета продаж и закупок, ориентированного на малый бизнес
Проектирование модели базы данных в соответствии с предметной областью "Торговля". Разработка архитектуры системы безопасности приложения по ведению базы данных. Реализация приложения, обеспечивающего учет продаж и закупок предприятия. Способы его защиты.
дипломная работа [2,5 M], добавлен 05.02.2017 Постановка задачи, система автоматизации операций. Проектирование, создание и управление Базой данных, формы для запросов, кнопочная форма. Работа запроса и отчета. Схема данных, создание новой группы, товара. Технологическая инструкция пользователя.
курсовая работа [1,9 M], добавлен 14.02.2010Создание базы данных для небольшого предприятия, занимающегося ремонтом бытовой техники. Анализ и характеристика предметной области, входных и выходных данных. Разработка конфигурации в системе "1С:Предприятие 8.2" и функциональной части приложения.
контрольная работа [2,4 M], добавлен 26.05.2014Анализ предметной области. Выработка требований и ограничений. Серверная часть информационной системы. Запросы клиентского приложения. Триггеры для поддержки сложных ограничений целостности в базе данных. Пользовательский интерфейс клиентского приложения.
курсовая работа [2,6 M], добавлен 21.02.2016