Российская международная академия туризма
Опубликован: 09.09.2008 | Доступ: свободный | Студентов: 813 / 38 | Оценка: 4.33 / 4.33 | Длительность: 13:07:00
Темы: Базы данных, Программирование
Специальности: Администратор баз данных
Лекция 9:
Добавление-удаление записей
Шаг 9. А теперь из выборки отбираем товар в корзину щелчком мыши
private void listBox1_SelectedIndexChanged(object sender,
System.EventArgs e) {//Выбираем строки из листбокса 1
s_new=listBox1.SelectedItem.ToString();
listBox2.Items.Add(s_new);
this.textBox6.Text=s_new;
this.tabControl1.SelectedIndex=2; // смотрим корзинку
edit_row(); // вызываем функцию подсчета стоимости товара в корзинке
} // хотя этой функции пока нет - напишем.Шаг 10. Создаем функцию подсчета стоимости товара в корзине
// заполняем поля редактора и считаем корзину покупателя
private void edit_row() {
// вычисляем длину выбранной строки из листбокса
int i_len=s_new.Length;
string s_goods=s_new.Substring(0,L_goods);
string s_firma=s_new.Substring(L_goods+1,L_firma-1);
string s_unit=s_new.Substring(L_goods+L_firma+1,L_unit-1);
string s_price=s_new.Substring(L_goods + L_firma + L_unit + 1,
i_len-(L_goods + L_firma + L_unit+1));
// преобразуем текст в сумму и считаем сумму выборки
i_sum=float.Parse(s_price)+i_sum;
textBox1.Text=i_sum.ToString();
textBox2.Text=s_goods;
textBox3.Text=s_firma;
textBox4.Text=s_unit;
textBox5.Text=s_price;
}Шаг 11. Создаем процедуру удаления записи из корзины по щелчку мыши
private void listBox2_SelectedIndexChanged_1
(object sender, System.EventArgs e) {
if (listBox2.SelectedItem != null) {
// вычисляем длину выбранной строки из листбокса
int i_len=listBox2.SelectedItem.ToString().Length;
string s_pay = listBox2.SelectedItem.ToString().Substring
(L_goods + L_firma + L_unit+1, i_len-(L_goods+L_firma+L_unit+1));
// преобразуем текст в сумму и считаем сумму выборки
i_sum=float.Parse(textBox1.Text)-float.Parse(s_pay);
textBox1.Text=i_sum.ToString();
// удаляем строки из listbox2
listBox2.Items.Remove(listBox2.SelectedItem.ToString());
}
}Шаг 12. Создаем процедуру вызова формы диалога удаления записи
Для кнопки "Удалить" в закладке "Редактор" пишем:
private void button3_Click(object sender, System.EventArgs e) {
ss=this.textBox6.Text;
if (ss = = "") {
MessageBox.Show("Нет записи для удаления!","Ошибка");
return;}
//Создаем место в памяти для объекта Форма2
Form Form_Del=new Form2();
// позиционируем форму 2 в форме 1
Form_Del.Parent=this.Parent;
// Вызываем как модальную форму
Form_Del.ShowDialog();
}Шаг 13. В текстовое поле Form2 переносим значение выбранной для удаления записи
public Form2()
{
InitializeComponent();
this.textBox1.Text=Form1.ss;
}Шаг 14. Если в Form2 удалять запись раздумали
//Для кнопки "Нет" в форме 2 пишем:
private void button2_Click(object sender, System.EventArgs e) {
this.Close();
}Шаг 15. Если в Form2 запись решили удалить
// Для кнопки "Да" в форме 2 пишем:
private void button1_Click(object sender, System.EventArgs e) {
this.label2.Visible=true;
//Считываем значения из файла в листбокс 1
// Тестируем наличие файла с данными о ценах
FileStream fin;
try {
fin=new FileStream("Товары.txt",FileMode.Open);
}
catch(IOException exc) {
MessageBox.Show ("Невозможно открыть файл.","Ошибка");
return;}
// Считываем значения из файла
string s;
StreamReader fstr_in=new StreamReader(fin);
while((s=fstr_in.ReadLine())!=null) {
listBox1.Items.Add(s);
progressBar2.Value=progressBar2.Value+1;
}
fstr_in.Close();
progressBar2.Value=0;
this.label2.Visible=false;
this.label3.Visible=true;
// Стираем все в файле
StreamWriter fin_out;
try {
fin_out=new StreamWriter("Товары.txt", false);
}
catch(IOException exc) {
MessageBox.Show ("Невозможно открыть файл.","Ошибка");
return;}
fin_out.Write("");
fin_out.Close();
//переписываем файл
try {
fin_out=new StreamWriter("Товары.txt", true);
}
catch(IOException exc) {
MessageBox.Show ("Невозможно открыть файл.","Ошибка");
return;}
if (listBox1.Items.Count!=0) {
string s_sym=this.textBox1.Text;
string s_name;
for(int i=0; i<listBox1.Items.Count;i++) {
s_name=listBox1.Items[i].ToString();
progressBar2.Value=progressBar2.Value+1;
if (s_sym!=s_name) {
fin_out.Write(s_name+"\r\n");
}
}
fin_out.Close();
this.Close();
}
}Шаг 16. Последний штрих – о программе
Для опции главного меню формы 1 пишем:
private void menuItem1Click(object sender, System.EventArgs e) {
MessageBox.Show("Калькулятор потребительской корзины в универсаме,"+
" чтобы не ошибиться на кассе и удачно выбрать товар по соотношению"+
" цена/качество.\n"+
"!!! Рекомендую копию базы Товары.txt хранить и на ПК, и на
FlashDisk.\n"+
"Платформа C#.Net FrameWork v1.1 (C)Родигин Л.А. 02-2006",
"О программе");
}