Пример #1
0
        static public int Query(string query /* Строка запроса*/,
                                DataGrid dataGrid     = null /* Вывод данных в DataGrid */,
                                bool necessaryDecrypt = false /* Необходима ли дешифровка */)
        {
            dataTable = new DataTable();
            try
            {
                command = new SqlCommand("USE [Airport] " + query, connection);
                adapter = new SqlDataAdapter(command);
                connection.Open();

                adapter.Fill(dataTable);

                if (necessaryDecrypt)
                {
                    for (int i = 0; i < dataTable.Rows.Count; i++)
                    {
                        for (int j = 0; j < dataTable.Columns.Count; j++)
                        {
                            dataTable.Rows[i][j] = Cryptographer.Decryption(dataTable.Rows[i][j].ToString());
                        }
                    }
                }

                if (dataGrid != null)
                {
                    dataGrid.ItemsSource = dataTable.DefaultView;
                }
            }
            catch (SqlException ex)
            {
                if (ex.Number == 547) /* Ошибка внешнего ключа */
                {
                    MessageBox.Show("Невозможно выполнить дествие, так как текущий объект имеет связь с данными из другой таблицы", "Исключение (SqlException)", MessageBoxButton.OK, MessageBoxImage.Warning);
                }
                if (ex.Number == 911) /* Ошибка базы данных (не существует) */
                {
                    return(911);
                }
                return(0);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Исключение (Exception)", MessageBoxButton.OK, MessageBoxImage.Warning);
            }
            finally
            {
                if (connection.State == ConnectionState.Open)
                {
                    connection.Close();
                }
            }
            return(dataTable.Rows.Count);
        }
Пример #2
0
        static public List <string> GetListOfRowsToColumn(string query /* Строка запроса*/,
                                                          string column /* Название столбца */,
                                                          bool necessaryDecrypt = false /* Необходима ли дешифровка */)
        {
            dataTable = new DataTable();
            List <string> listOfRows = new List <string>();

            try
            {
                command = new SqlCommand("USE [Airport] " + query, connection);
                adapter = new SqlDataAdapter(command);
                connection.Open();

                adapter.Fill(dataTable);
                int i = 0;
                foreach (DataRow row in dataTable.Rows)
                {
                    if (necessaryDecrypt)
                    {
                        if (dataTable.Rows.ToString() == Cryptographer.Encryption(column))
                        {
                            i++;
                        }
                        listOfRows.Add(Cryptographer.Decryption(row[i].ToString()));
                    }
                    else
                    {
                        if (dataTable.Columns.ToString() == column)
                        {
                            i++;
                        }
                        listOfRows.Add(row[i].ToString());
                    }
                }
            }
            catch (SqlException ex)
            {
                MessageBox.Show(ex.Message, "Исключение (SqlException)", MessageBoxButton.OK, MessageBoxImage.Warning);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Исключение (Exception)", MessageBoxButton.OK, MessageBoxImage.Warning);
            }
            finally
            {
                if (connection.State == ConnectionState.Open)
                {
                    connection.Close();
                }
            }
            return(listOfRows);
        }