Российская международная академия туризма
Опубликован: 09.09.2008 | Доступ: свободный | Студентов: 814 / 38 | Оценка: 4.33 / 4.33 | Длительность: 13:07:00
Темы: Базы данных, Программирование
Специальности: Администратор баз данных
Лекция 11:
Добавление-удаление записей
Шаг 15. Создаем процедуру фильтрации целевых расходов
Для кнопки "Фильтр цели" пишем:
private void button4_Click(object sender, System.EventArgs e) {
// внимательно: в кавычки берется апостроф
dataTable.DefaultView.RowFilter="Цель='"+this.textBox2.Text+"'";
dataGrid1.DataSource=dataTable;
this.tabControl1.SelectedIndex=0;
my_filt=this.textBox2.Text;
my_chan="Цель";
cell_sum(); // считаем результат
}Шаг 16. Создаем процедуру фильтрации расходов по фирмам
Для кнопки "Фильтр фирмы" пишем:
private void button6_Click(object sender, System.EventArgs e) {
dataTable.DefaultView.RowFilter="Фирма='"+this.textBox3.Text+"'";
dataGrid1.DataSource=dataTable;
this.tabControl1.SelectedIndex=0;
my_filt=this.textBox3.Text;
my_chan="Фирма";
cell_sum();
}Шаг 17. Создаем процедуру удаления фильтра
Для кнопки "Показать все" пишем:
private void button5_Click(object sender, System.EventArgs e) {
DataView sortedView=new DataView(dataTable);
// обратная сортировка
sortedView.Sort="ID DESC";
dataGrid1.DataSource=sortedView;
this.tabControl1.SelectedIndex=0;
balance();
}Шаг 18. Создаем процедуру запроса с группировкой данных
Для кнопки "Найти" закладки "База данных" пишем:
private void My_Query(){
// выборка целей платежей - создаем структуру таблицы DataSet1
dataSet1=new DataSet();
dataTable1=dataSet1.Tables.Add("Платежи");
// добавляем столбцы
dataTable1.Columns.Add("Цель",System.Type.GetType("System.String"));
dataTable1.Columns.Add("Сумма",System.Type.GetType("System.String"));
// добавляем первую строку для шаблона
int my_test=0;
string my_sum;
float my_summa=0;
foreach (DataRow row in dataTable.Rows) { // перебираем все записи
my_fuel=(row["Цель"].ToString());
my_test=0;
DataRow[] rowCell=dataTable.Select("Цель='"+my_fuel+"'");
// вложенные циклы выборки записей по условию
foreach (DataRow rowTable in rowCell) {
my_summa=my_summa+float.Parse(rowTable["Сумма"].ToString());
}
foreach (DataRow row1 in dataTable1.Rows){
my_service=(row1["Цель"].ToString());
if (my_fuel==my_service)
my_test=1;
}
if (my_test==0){
my_sum=my_summa.ToString();
object[] a1={my_fuel,my_sum};
dataTable1.Rows.Add(a1);
}
my_summa=0;
}
//привязываем
dataGrid1.TableStyles.Clear();
// стиль грид делаем программно
DataGridTableStyle ts= new DataGridTableStyle();
ts.MappingName="Платежи";
DataGridTextBoxColumn cs=new DataGridTextBoxColumn();// первый столбец
cs.Width=120;
cs.MappingName="Цель";
cs.HeaderText="Выберите платеж";
cs.NullText="";
ts.GridColumnStyles.Add(cs);
cs = new DataGridTextBoxColumn();// второй столбец
cs.Width=70;
cs.MappingName="Сумма";
cs.HeaderText="ИТОГО";
ts.GridColumnStyles.Add(cs);
this.dataGrid1.TableStyles.Add(ts);
DataView sortedView1=new DataView(dataTable1);
sortedView1.Sort="Цель";
dataGrid1.DataSource=sortedView1;
my_grid=1;
}Шаг 19. Создаем процедуру для кнопки "Найти"
private void button7_Click(object sender, System.EventArgs e) {
if (this.dataGrid1.Visible==false) {// выводим сообщение с картинкой
MessageBox.Show("Откройте или создайте файл данных!",
"Ошибка", MessageBoxButtons.OK,
MessageBoxIcon.Asterisk,MessageBoxDefaultButton.Button1 );
return;}
My_Query();
}Шаг 20. Создаем процедуру выборки данных из базы по условию
Для клика записи ДатаГрид пишем:
private void dataGrid1_Click(object sender, System.EventArgs e) {
// номер "кликнутой" строки
int N_row=dataGrid1.CurrentCell.RowNumber;
// номер сторбца
int N_col=dataGrid1.CurrentCell.ColumnNumber;
if (my_grid==1) {
my_fuel=dataGrid1[N_row,0].ToString();
DataView sortedView=new DataView(dataTable);
sortedView.Sort="ID DESC";
sortedView.RowFilter="Цель='"+my_fuel+"'";
dataGrid1.TableStyles.Clear();
dataGrid1.TableStyles.Add(dataGridTableStyle1);
dataGrid1.DataSource=sortedView;
my_grid=0;
return;
}
// вывод значения ячейки
my_ID=dataGrid1[N_row,0].ToString()+"\n"+
dataGrid1[N_row,1].ToString()+"\n"+
dataGrid1[N_row,2].ToString()+"\n"+
dataGrid1[N_row,3].ToString()+"\n"+
dataGrid1[N_row,4].ToString();
textBox1.Text=dataGrid1[N_row,0].ToString();
textBox2.Text=dataGrid1[N_row,1].ToString();
textBox3.Text=dataGrid1[N_row,2].ToString();
textBox4.Text=dataGrid1[N_row,3].ToString();
textBox5.Text=dataGrid1[N_row,4].ToString();
string mes=N_col.ToString();;
if (N_col==0) {mes="Сумма";}
if (N_col==1) {mes="Цель";}
if (N_col==2) {mes="Фирма";}
if (N_col==3) {mes="Дата";}
if (N_col==4) {mes="ID";}
if (MessageBox.Show(my_ID+"\n Редактировать?",mes,
MessageBoxButtons.YesNo,
MessageBoxIcon.Question,MessageBoxDefaultButton.Button2) =
= DialogResult.Yes)
this.tabControl1.SelectedIndex=1;
}