Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Sabelnikov_lab3_2_6_DataBases.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
711.93 Кб
Скачать
  1. Обработчики событий

Обработчик события

Назначение

button_select_query_Click

Запрос с оператором SELECT

comboBox_select_query_SelectedIndexChanged

Обновление списка полей по изменению таблицы

comboBox_insert_query_SelectedIndexChanged

Обновление списка полей по изменению таблицы

button_clear_datagrid_Click

Очистка dataGridView

button_connect_Click

Попытка соединения с базой данных. Если успешно, то и сохранение настроек

button_insert_query_Click

Запрос с оператором INSERT

button_update_query_Click

Запрос с оператором UPDATE

button_delete_query_Click

Запрос с оператором DELETE

button4_Click

Расчет №1

button5_Click

Расчет №2

button6_Click

Расчет №2

  1. Внешний вид проекта

  1. Окно запроса с оператором SELECT

  1. Окно запроса с операторами INSERT, UPDATE, DELETE

  1. Окно расчетов на основании запросов

  1. Окно подключения к базе данных

  1. Окно об авторе

  1. Исходный код проекта

Класс Gridder:

class Gridder

{

private static DataGridView dGV = null; // data grid view to work with

//=============== A 'Single' pattern ===============//

private static Gridder instance = null;

private Gridder() { }

public static Gridder getInstance() {

if (instance == null)

return new Gridder();

return instance;

}

//===============================================//

/// <summary>

/// DataGridView to display info on

/// </summary>

public DataGridView DataGrid

{

set { Gridder.dGV = value; }

}

/// <summary>

/// Send a query and get info

/// </summary>

/// <param name="query"></param>

/// <param name="returnArray">put data in array. Otherwise it will put it in a DataGridView</param>

/// <param name="select">do we need an answer at all?</param>

/// <returns></returns>

public String[,] queryAndShow(String query, bool returnArray = false, bool select = true)

{

// don't do anything if we need dataGridView but it doesn't exist

if (((dGV == null) && !returnArray)) return null;

// generate string of connection

string connectionString = "Server=" + Settings.Default.Server + ";Database=" + Settings.Default.Database + ";User Id=" + Settings.Default.Login + ";" + "Password=" + Settings.Default.Password + ";";

SqlConnection con = new SqlConnection(connectionString);

try

{

// open database connection

con.Open();

//MessageBox.Show("Connection is open ");

}

catch { MessageBox.Show("Connection is not open "); }

// здесь перехватываются все исключения

SqlCommand cmd; // contains a command

SqlDataReader dr; // contains a result

String [,] arr = null; // contains answer

cmd = new SqlCommand(query, con);

// метод ExecuteReader выполняет команду, возвращающую множество строк

try

{

dr = cmd.ExecuteReader(); // run query

if (select)

{

int i = 0, k = 0;

// определение числа возвращаемых строк k

while (dr.Read())

{ k += 1; }

dr.Close();// закрытие dr

//повторный вызов метода

dr = cmd.ExecuteReader();

if (!returnArray)

{

dGV.RowCount = k; // число строк в сетке равно k

dGV.ColumnCount = dr.FieldCount;

} else

{

arr = new String[k, dr.FieldCount];

}

while (dr.Read()) // выбор данных

{

if (!returnArray)

{

// for dataGridView

for (int j = 0; j < dr.FieldCount; j++)

dGV[j, i].Value = dr[j].ToString();

}

else

{

// for array

for (int j = 0; j < dr.FieldCount; j++)

arr[i, j] = dr[j].ToString();

}

i += 1;

}

if (!returnArray)

{

// задание имен полей сетки с помощью метода dr.GetName(j)

for (int j = 0; j < dr.FieldCount; j++)

dGV.Columns[j].HeaderText = dr.GetName(j);

for (int km = 0; km < dGV.Columns.Count; km++)

{

// autosize

dGV.Columns[km].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;

}

}

}

dr.Close();// закрытие объекта dr

}

catch (Exception e) { MessageBox.Show(e.Message + "\nQUERY = '" + query + "'", "Error"); }

try

{

con.Close();

//MessageBox.Show("Connection is closed ");

}

catch { MessageBox.Show("Connection is not closed"); }

return arr; // anyway return an array

}

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]