Реализация базы данных приложения «Выбор ноутбука»
⇐ ПредыдущаяСтр 3 из 3 Подробное описание всех необходимых таблиц находится в главе 2, пункт 2. В данном пункте будет рассмотрена программная реализация и использование таблиц базы данных. На рисунке 48 представлена схема DataSet (набор данных) приложения. Рисунок 48. Схема DataSet Теперь, рассмотрим все команды, с помощью которых данные таблицы подключаются к формам. Текст этих команд хранится в объекте SqlCommand, в свойстве CommandText. К форме администратора таблица подключается следующим образом: SELECT id, Parameters, Price, Notebook FROM Notebook Таблица «Bluetooth»: SELECT Bluetooth FROM Bluetooth Таблица «Диагонали»: SELECT Diagonal FROM Diagonal Таблица «Приводы»: SELECT [disk] FROM [Disk] Таблица «HDD»: SELECT HDD FROM HDD Таблица «Использование»: SELECT using FROM Using Таблица «ОЗУ»: SELECT Operativ_pam FROM Operativ Таблица «Операционная система»: SELECT os FROM os Таблица «Цены»: SELECT money FROM Money Таблица «Процессор»: SELECT [proc] FROM Processor Таблица «Производитель»: SELECT Firm FROM Firm Таблица результата особого поиска подключена следующим образом: SELECT id, Notebook, Parameters, Price FROM Notebook Таблица результата поиска по назначению: SELECT id, Notebook, Parameters, Price FROM Notebook Таблица результата поиска по характеристикам: SELECT id, Notebook, Price, Parameters FROM Notebook В главе 2 пункте 3 так же была описана хранимая функция, которая позволяет сверить пароль с паролем, хранимым в таблице. Подключение этой функции происходит в форме авторизации администратора следующим образом: У объекта SqlCommand выбирается значение свойства CommandType – Stored Procedure. Далее, в свойстве CommandText выбирается нужная хранимая функция, в данном случае это dbo.проверить_пароль. Выполнение функции осуществляется ее вызовом в коде формы с помощью команды sqlCommand1.ExecuteScalar(). Таким образом, была реализована клиентская часть приложения «Выбор ноутбука». Приложение будет полезно для любой организации, занимающейся продажей ноутбуков, и, по своей сути, может заменить продавца-консультанта. В дальнейшем возможно развитие приложения: добавление новых товарных групп, формирование корзины товаров и т.п.
ЗАКЛЮЧЕНИЕ В результате проделанной работы была разработана информационная система «Выбор ноутбука». Были решены следующие задачи: · выполнен анализ предметной области; · проведен анализ входных и выходных данных; · спроектирована модель базы данных и модель интерфейса; · Обоснован выбор программное обеспечение для разработки приложения; · реализована клиентскую часть приложения. Было выполнено предпроектное обследование организации, в которую планируется внедрить систему, разработан проект приложения «Выбор ноутбука»: схема данных, модель интерфейса и модель базы данных. Далее было реализовано приложение с использованием Microsoft Visual Studio 2008 «Выбор ноутбука»: реализована база данных на SQL SERVER 2005; реализован интерфейс программы. Приложение «Выбор ноутбука» может быть использовано в любом магазине, занимающемся реализацией компьютерной техники. По своей сути оно заменяет консультанта по работе с клиентами. В дальнейшем возможно расширение функционала приложения, увеличение базы данных техники, добавление других разделов техники помимо ноутбуков, более детальное разграничение доступа пользователей.
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ 1. «Википедия» свободная энциклопедия http://ru.wikipedia.org 2. Герберт Шилдт, ИД “Вильямс”, “Полный справочник по C#”, Москва 2004 г. 3. Уэйт, М. Язык С. Руководство для начинающих. / М. Уэйт, С. Прага, Д. Мартин. - М.: Мир, 1995. - 521с.: ил. 4. Лахатин, А.С. Языки программирования. Учеб. пособие / А.С. Лахатин, Л.Ю. Искакова. - Екатеринбург, 1998. - 548с.: ил. 5. «Microsoft Visio 2007 – инструмент ИТ-специалистов и бизнес-пользователей» Автор: Андрей Колесов. 15.12.2007.
6. «BPwin и ERwin. CASE - средства разработки информационных систем» С. В. Маклаков, Издательство: Диалог-МИФИ. 7. Информационные системы. Избачков Ю.С., Петров В.Н. 2-е изд. - СПб.: Питер, 2006. — 656 с. 8. ПРИКЛАДНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ. Учебно-методический комплекс для специальности 010501.65 – «Прикладная математика и информатика». 9. Берри Р., Микинз Б. Язык С - введение для программистов. - М.: Финансы и статистика, 1988. - 191 с. 10. Форсайт Дж., Малькольм М., Моулер К. Машинные методы математических вычислений. - М.: Мир, 1980. - 278 с. 11. Николь Н., Альбрехт Р. Электронные таблицы Excel 5.0 для квалифицированных пользователей. - М.: Эком, 1996. - 304 c. 12. Брауде Э. Технология разработки программного обеспечения. - СПб.: Питер, 2004. - 655 с.: ил. 13. Технологии разработки программного обеспечения: Учебник / С. Орлова. - СПб.: Питер, 2002.- 464 с.: ил. 14. Кэролл Зиглер, Методы проектирования программных систем. М.: Мир, 1985. [З 973, З 497]. 15. Фридман А.Л. Основы объектно-ориентированной разработки программных систем. - М.: Финансы и статистика, 2000. 16. Моделирование бизнеса: средства и методы. / В. Чеботарев. // PC Week/RE, - № 9 (231), - 2000
ПРИЛОЖЕНИЕ Приложение 1 ALTER FUNCTION [dbo].[проверить_пароль] (@hpwd as char(50), @login char(20)) RETURNS bigint AS BEGIN declare @n as bigint declare @kod as bigint set @n = (select count(kod) from Users where login=@login and hash_pwd=@hpwd)
if @n <> 1 begin set @kod = -1 end else begin set @kod = (select top 1 kod from Users where login=@login and hash_pwd=@hpwd order by kod asc) end RETURN @kod END Приложение 2 public partial class Form1: Form { public Form1() { InitializeComponent(); }
private void button1_Click(object sender, EventArgs e) { Haracteristic fr1 = new Haracteristic(); fr1.Show(); }
private void button2_Click(object sender, EventArgs e) { Naznachen fr2 = new Naznachen(); fr2.Show(); }
private void button5_Click(object sender, EventArgs e) { Opisanie fr3 = new Opisanie(); fr3.Show(); }
private void button4_Click(object sender, EventArgs e) { //try //{ // Process SysInfo = new Process(); // SysInfo.StartInfo.ErrorDialog = true; // SysInfo.StartInfo.FileName = "help.chm"; // SysInfo.Start(); //} //catch (Exception ex) //{ // MessageBox.Show(ex.Message); //} Help.ShowHelp(this, "Help.chm"); }
private void label2_Click(object sender, EventArgs e) {
}
private void button3_Click(object sender, EventArgs e) { Password fr4 = new Password(); fr4.Show(); }
private void button6_Click(object sender, EventArgs e) { Osobiy frfr = new Osobiy(); frfr.Show(); }
private void Form1_Load(object sender, EventArgs e) {
}
}
Приложение 3
public partial class Haracteristic: Form { public Haracteristic() { InitializeComponent(); }
private void label1_Click(object sender, EventArgs e) {
}
private void button2_Click(object sender, EventArgs e) { Proizvodit fr_pr = new Proizvodit(); if (fr_pr.ShowDialog()!= DialogResult.OK) { textBox3.Text = ""; return; } else { textBox3.Text = fr_pr.firma; } }
private void button4_Click(object sender, EventArgs e) { Proc fr_proc = new Proc(); if (fr_proc.ShowDialog()!= DialogResult.OK) { textBox5.Text = ""; return; } else { textBox5.Text = fr_proc.proc; } }
private void button5_Click(object sender, EventArgs e) { Operativ fr_ozy = new Operativ(); if (fr_ozy.ShowDialog()!= DialogResult.OK) { textBox6.Text = ""; return; } else { textBox6.Text = fr_ozy.ozy; } }
private void button6_Click(object sender, EventArgs e) { hdd fr_hdd = new hdd(); if (fr_hdd.ShowDialog()!= DialogResult.OK) { textBox7.Text = ""; return; } else { textBox7.Text = fr_hdd.hddisk; } }
private void button7_Click(object sender, EventArgs e) { Disk fr_disk = new Disk(); if (fr_disk.ShowDialog()!= DialogResult.OK) { textBox8.Text = ""; return; } else { textBox8.Text = fr_disk.disk_tip; } }
private void button13_Click(object sender, EventArgs e) { if (textBox3.Text == "" && textBox5.Text == "" && textBox6.Text == "" && textBox7.Text == "" && textBox8.Text == "") { MessageBox.Show("Не выбраны параметры для поиска", "Ошибка"); return; } else {
string f = ""; if (textBox3.Text!= "") f += "(Parameters like '%" + textBox3.Text + "%') And "; if (textBox5.Text!= "") f += "(Parameters like '%" + textBox5.Text + "%') And "; if (textBox6.Text!= "") f += "(Parameters like '%" + textBox6.Text + "%') And "; if (textBox7.Text!= "") f += "(Parameters like '%" + textBox7.Text + "%') And "; if (textBox8.Text!= "") f += "(Parameters like '%" + textBox8.Text + "%') And ";
f = " \nWHERE " + f.Remove(f.Length - 5);
BindingSource bs = new BindingSource(); sqlCommand1.CommandText = sql + f;
sqlConnection1.Open(); SqlDataReader dr = sqlCommand1.ExecuteReader(); if (dr.HasRows) bs.DataSource = dr; dr.Close(); sqlConnection1.Close(); dataGridView1.AutoGenerateColumns = false; dataGridView1.DataSource = bs; }
}
string sql; private void Haracteristic_Load(object sender, EventArgs e) { sql = @"SELECT id, Notebook, Price, Parameters FROM Notebook"; } }
Приложение 4 public partial class Naznachen: Form { public Naznachen() { InitializeComponent(); }
private void button1_Click(object sender, EventArgs e) { Price fr_cena = new Price(); if (fr_cena.ShowDialog()!= DialogResult.OK) { textBox2.Text = ""; return; } else { textBox2.Text = fr_cena.diapozon; } }
private void button2_Click(object sender, EventArgs e) { Ispolz fr_isp = new Ispolz(); if (fr_isp.ShowDialog()!= DialogResult.OK) { textBox3.Text = ""; return; } else { textBox3.Text = fr_isp.isp;
} }
private void button8_Click(object sender, EventArgs e) { Diagonal fr_diag = new Diagonal(); if (fr_diag.ShowDialog()!= DialogResult.OK) { textBox16.Text = ""; return; } else { textBox16.Text = fr_diag.diag; } }
private void button11_Click(object sender, EventArgs e) { OS fr_os = new OS(); if (fr_os.ShowDialog()!= DialogResult.OK) { textBox22.Text = ""; return; } else { textBox22.Text = fr_os.op_sys; } }
private void button10_Click(object sender, EventArgs e) { Bluetooth fr_bl = new Bluetooth(); if (fr_bl.ShowDialog()!= DialogResult.OK) { textBox20.Text = ""; return; } else { textBox20.Text = fr_bl.bl_podkl; } }
private void button13_Click(object sender, EventArgs e) { if (textBox2.Text == "" && textBox3.Text == "" && textBox16.Text == "" && textBox22.Text == "" && textBox20.Text == "") { MessageBox.Show("Не выбраны параметры для поиска", "Ошибка"); return; } else { string f = ""; if (textBox2.Text!= "") f += "(Parameters like '%" + textBox2.Text + "%') And "; if (textBox3.Text!= "") f += "(Parameters like '%" + textBox3.Text + "%') And "; if (textBox16.Text!= "") f += "(Parameters like '%" + textBox16.Text + "%') And "; if (textBox22.Text!= "") f += "(Parameters like '%" + textBox22.Text + "%') And "; if (textBox20.Text!= "") f += "(Parameters like '%" + textBox20.Text + "%') And ";
f = " \nWHERE " + f.Remove(f.Length - 5);
BindingSource bs = new BindingSource(); sqlCommand1.CommandText = sql + f;
sqlConnection1.Open(); SqlDataReader dr = sqlCommand1.ExecuteReader(); if (dr.HasRows) bs.DataSource = dr; dr.Close(); sqlConnection1.Close(); dataGridView1.AutoGenerateColumns = false; dataGridView1.DataSource = bs; } }
string sql; private void Naznachen_Load(object sender, EventArgs e) { sql = @"SELECT id, Notebook, Parameters, Price FROM Notebook"; } }
Приложение 5 public partial class Password: Form { public Password() { InitializeComponent(); }
private void button1_Click(object sender, EventArgs e) { string login1 = this.textBox1.Text; string pwd = this.textBox2.Text; sqlConnection1.Open(); sqlCommand1.Parameters["@login"].Value = login1; sqlCommand1.Parameters["@hpwd"].Value = pwd; sqlCommand1.ExecuteScalar(); this.sqlCommand1.Parameters["@RETURN_VALUE"].Value;
System.Security.Cryptography.MD5CryptoServiceProvider md5 = new System.Security.Cryptography.MD5CryptoServiceProvider(); byte[] pwdb = Encoding.Unicode.GetBytes(this.textBox1.Text);
// Преобразование строки b64 в массив байт //Convert.FromBase64String( byte[] hashb = md5.ComputeHash(pwdb); string b64hash = Convert.ToBase64String(hashb); this.textBox2.Text = b64hash;
int n = b64hash.Length; //MessageBox.Show(string.Format("n={0}, lenHash={1}", n, hashb.Length));
//if (textBox2.Text == "GaKFQUS2Oo92F6byJQGbEg==") //{ // Close(); // Admin fr1 = new Admin(); // fr1.Show(); // //newMDIChild.MdiParent = Form1.ActiveForm; // //newMDIChild.Show();
//} //else //{ // textBox2.Text = ""; // MessageBox.Show("Введен неверный пароль", "Ошибка"); //} }
private void Password_Load(object sender, EventArgs e) {
}
private void textBox1_TextChanged(object sender, EventArgs e) {
}
private void label1_Click(object sender, EventArgs e) {
} }
Приложение 6 public partial class Osobiy: Form { public Osobiy() { InitializeComponent(); }
string sql; protected internal string vop; private void Osobiy_Load(object sender, EventArgs e) { // TODO: данная строка кода позволяет загрузить данные в таблицу "iisDataSet5.Vopros". При необходимости она может быть перемещена или удалена. this.voprosTableAdapter.Fill(this.iisDataSet5.Vopros);
sql = @"SELECT id, Notebook, Parameters, Price
FROM Notebook";
textBox1.Text = dataGridView1.Rows[0].Cells[1].Value.ToString(); textBox2.Text = dataGridView1.Rows[1].Cells[1].Value.ToString(); textBox3.Text = dataGridView1.Rows[2].Cells[1].Value.ToString(); textBox4.Text = dataGridView1.Rows[3].Cells[1].Value.ToString(); textBox5.Text = dataGridView1.Rows[4].Cells[1].Value.ToString(); if (textBox3.Text == "") { textBox3.Visible = false; button5.Visible = false; button6.Visible = false; } else { textBox3.Visible = true; button5.Visible = true; button6.Visible = true; } if (textBox4.Text == "") { textBox4.Visible = false; button7.Visible = false; button8.Visible = false; } else { textBox4.Visible = true; button7.Visible = true; button8.Visible = true; } if (textBox5.Text == "") { textBox5.Visible = false; button9.Visible = false; button10.Visible = false; } else { textBox5.Visible = true; button9.Visible = true; button10.Visible = true; } //textBox6.Visible = false; //textBox7.Visible = false; //textBox8.Visible = false; //textBox9.Visible = false; //textBox10.Visible = false; //dataGridView1.Visible = false; //textBox13.Visible = false; //button13.Visible = false; //button14.Visible = false; //button15.Visible = false;
}
private void button1_Click(object sender, EventArgs e) { textBox6.Visible = true; textBox6.Text = "Пульт_ДУ"; }
private void button2_Click(object sender, EventArgs e) { textBox6.Visible = true; textBox6.Text = "Без_пульта"; }
private void button3_Click(object sender, EventArgs e) { textBox7.Visible = true; textBox7.Text = "Сканер_отпечатка"; }
private void button4_Click(object sender, EventArgs e) { textBox7.Visible = true; textBox7.Text = "Без_сканера_отпечатка"; }
private void button5_Click(object sender, EventArgs e) { textBox8.Visible = true; textBox8.Text = "Опция1"; }
private void button6_Click(object sender, EventArgs e) { textBox8.Visible = true; textBox8.Text = "Без_опции1"; }
private void button7_Click(object sender, EventArgs e) { textBox9.Visible = true; textBox9.Text = "Опция2"; }
private void button8_Click(object sender, EventArgs e) { textBox9.Visible = true; textBox9.Text = "Без_опции2"; }
private void button9_Click(object sender, EventArgs e) { textBox10.Visible = true; textBox10.Text = "Опция3"; }
private void button10_Click(object sender, EventArgs e) { textBox10.Visible = true; textBox10.Text = "Без_опции3"; }
private void button11_Click(object sender, EventArgs e) { if (textBox10.Text == "" && textBox6.Text == "" && textBox7.Text == "" && textBox8.Text == "" && textBox9.Text == "") { MessageBox.Show("Не выбраны параметры для поиска", "Ошибка"); return; } else { string f = ""; if (textBox6.Text!= "") f += "(Parameters like '%" + textBox6.Text + "%') And "; if (textBox7.Text!= "") f += "(Parameters like '%" + textBox7.Text + "%') And "; if (textBox8.Text!= "") f += "(Parameters like '%" + textBox8.Text + "%') And "; if (textBox9.Text!= "") f += "(Parameters like '%" + textBox9.Text + "%') And "; if (textBox10.Text!= "") f += "(Parameters like '%" + textBox10.Text + "%') And ";
f = " \nWHERE " + f.Remove(f.Length - 5);
BindingSource bs = new BindingSource(); sqlCommand1.CommandText = sql + f;
sqlConnection1.Open(); SqlDataReader dr = sqlCommand1.ExecuteReader(); if (dr.HasRows) bs.DataSource = dr; dr.Close(); sqlConnection1.Close(); dataGridView2.AutoGenerateColumns = false; dataGridView2.DataSource = bs; } }
private void button12_Click(object sender, EventArgs e) { if (textBox11.Text == "admin") { dataGridView1.Visible = true; textBox13.Visible = true; button13.Visible = true; button14.Visible = true; button15.Visible = true; Osobiy.ActiveForm.Height = 410; } else { MessageBox.Show("Введен неверный пароль", "Ошибка"); } textBox11.Text = ""; }
private void dataGridView1_Click(object sender, EventArgs e) { textBox13.Text = (string)dataGridView1["voprDataGridViewTextBoxColumn", dataGridView1.CurrentRow.Index].Value; }
private void button13_Click(object sender, EventArgs e) { System.Data.SqlClient.SqlConnection sqlConnection1 = new System.Data.SqlClient.SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Ксения\\Универ\\4 КУРС\\ИИС\\ЭКСПЕРТКА\\ПРОЕКТ\\WindowsFormsApplication1\\WindowsFormsApplication1\\iis.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"); System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(); cmd.CommandType = System.Data.CommandType.Text; cmd.CommandText = "INSERT Vopros (Id, vopr) VALUES" + "(@Id, @vopr)"; cmd.Connection = sqlConnection1; cmd.Parameters.AddWithValue("@Id", 3); cmd.Parameters.AddWithValue("@vopr", textBox13.Text);
sqlConnection1.Open(); cmd.ExecuteNonQuery(); sqlConnection1.Close(); MessageBox.Show("Вопрос добален. Данные отобразятся при следующем входе в базу данных."); }
private void button14_Click(object sender, EventArgs e) { if (dataGridView1.CurrentRow == null) { MessageBox.Show("Строка для удаления не выбрана"); return; } int id = (int)dataGridView1["idDataGridViewTextBoxColumn", dataGridView1.CurrentRow.Index].Value; if (MessageBox.Show("Вы действительно хотите удалить вопрос " + id + "?", "Удаление сведений", MessageBoxButtons.OKCancel) == DialogResult.Cancel) return; else { delCommand.Parameters["@Id"].Value = id; delCommand.ExecuteNonQuery(); MessageBox.Show("База данных обновлена. Данные отобразятся при следующем входе в базу данных."); } }
private void button15_Click(object sender, EventArgs e) { button13.PerformClick(); }
}
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|