Российская международная академия туризма
Опубликован: 09.09.2008 | Доступ: свободный | Студентов: 811 / 38 | Оценка: 4.33 / 4.33 | Длительность: 13:07:00
Темы: Базы данных, Программирование
Специальности: Администратор баз данных
Теги:
Лекция 9:
Добавление-удаление записей
Шаг 3. Добавляем библиотеки в оба класса форм
using System; using System.Drawing; using System.Collections; using System.Windows.Forms; using System.Data; //добавляем библиотеку using System.IO;
Шаг 4. Объявляем общие переменные в public class Form1 : System.Windows.Forms.Form
// объявляем глобальную переменную для использования в форме 2 public static string ss; float i_sum=0; // стоимость товара в корзине int L_goods=10; // длина поля "Товар" int L_firma=10; // длина поля "Фирма" int L_unit=4; // Длина поля "Количество" string s_new; // строка обозначения товара
Шаг 5. Для public Form1() , загружаемой первой по умолчанию
Тестируем наличие файла базы данных - дописываем:
InitializeComponent(); // если файла с данными о ценах нет, то создаем файл для записи значений 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); // грузим базу в листбокс } fstr_in.Close(); // и закрываем поток // вызываем функцию для заполняем листбокса поиска товара appe_listbox3(); // вообще-то функции пока нет
Шаг 6. Создаем функцию алфавита appe_listbox3 из имеющихся названий товара
private void appe_listbox3() { listBox3.Items.Clear(); // для вывода результата используем listBox3 const string s_alfa="АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЭЮЯ"; string s,s_name,s_sym; // вычисляем длину выбранной строки из алфавита for (int it=0;it<s_alfa.Length; it++) { s_sym=s_alfa.Substring(it,1); // Тестируем наличие файла с данными о ценах FileStream fin; try { fin=new FileStream("Товары.txt",FileMode.Open); } catch(IOException exc) { MessageBox.Show ("Невозможно открыть файл.","Ошибка"); return;} // бежим по файлу StreamReader fstr_in=new StreamReader(fin); while ((s=fstr_in.ReadLine())!=null ) { s_name=s.Substring(0,1); if (s_name==s_sym) { listBox3.Items.Add(s_name); s_sym=""; // обнуляем, чтобы избежать повторов } } fstr_in.Close(); }
Шаг 7. Добавляем запись в базу данных
Для кнопки "Добавить" в закладке "Редактор" создаем процедуру:
private void button1_Click (object sender, System.EventArgs e) { // Проверка значений полей if (textBox2.Text=="") { MessageBox.Show("Введите товар!","Ошибка"); return;} if (textBox3.Text=="") { MessageBox.Show("Введите фирму!","Ошибка"); return;} if (textBox4.Text=="") { MessageBox.Show("Введите количество!","Ошибка"); return;} if (!char.IsDigit(textBox5.Text[0])) { textBox5.Text = "0,00"; MessageBox.Show("Введите цену!","Ошибка"); return;} // Тестируем наличие файла с данными FileStream fin; try { fin=new FileStream("Товары.txt",FileMode.OpenOrCreate); fin.Close(); } catch(IOException exc) { MessageBox.Show ("Невозможно открыть файл.","Ошибка"); return; } //форматируем значения string s_field1=textBox2.Text; if (s_field1.Length<L_goods) { for (int i=s_field1.Length; i<L_goods; i++) s_field1=s_field1+" "; } else { //обрезаем строку int L=s_field1.Length; s_field1=s_field1.Remove(L_goods,L-L_goods); } string s_field2="|"+textBox3.Text; // вставляем разделитель полей if (s_field2.Length<L_firma) { for (int i=s_field2.Length; i<L_firma; i++) s_field2=s_field2+" "; } else { //обрезаем строку int L=s_field2.Length; s_field2=s_field2.Remove(L_firma,L-L_firma); } string s_field3="|"+textBox4.Text; if (s_field3.Length<L_unit) { for (int i=s_field3.Length; i<L_unit; i++) s_field3=s_field3+" "; } else { //обрезаем строку int L=s_field3.Length; s_field3=s_field3.Remove(L_unit,L-L_unit); } string s_field4="|"+textBox5.Text; // Записываем значения в файл StreamWriter fin_out; try { fin_out=new StreamWriter("Товары.txt", true); } catch(IOException exc) { MessageBox.Show ("Невозможно открыть файл.","Ошибка"); return;} string s=s_field1+s_field2+s_field3+s_field4+"\r\n"; fin_out.Write(s); fin_out.Close(); MessageBox.Show(s_field1+"\n"+s_field2+"\n"+s_field3+"\n"+ s_field4,"Запись добавлена"); // Обнуляем поля textBox2.Text=""; textBox3.Text=""; textBox4.Text=""; textBox5.Text="0,00"; // заполняем листбокс3 appe_listbox3(); }
Шаг 8. Теперь можно программировать процедуру листбокс на закладке "Редактор" для выборки товара из базы
private void listBox3_SelectedIndexChanged (object sender, System.EventArgs e) {//выборка групп товаров из файла listBox1.Items.Clear(); s_new=listBox3.SelectedItem.ToString(); string s; FileStream fin; try { fin=new FileStream("Товары.txt",FileMode.Open); } catch(IOException exc) { MessageBox.Show ("Невозможно открыть файл.","Ошибка"); return;} // бежим по файлу StreamReader fstr_in=new StreamReader(fin); while ((s=fstr_in.ReadLine())!=null ) { if (s_new.Substring(0,1)==s.Substring(0,1)) { listBox1.Items.Add(s); // если нашли, то добавляем в листбокс } } fstr_in.Close(); //переключаемся на закладку "База данных" для просмотра выборки this.tabControl1.SelectedIndex=1; }