Минимизация кода при работе с SQL запросами.

Собственно то о чём расскажу можно использовать при помощи разных средств разработки, это больше идея — нежели что-то особенное.

Смысл минимизации в том, что процедуры выполнения запросов прописываются в отдельном классе отдельной функцией. Во всех случаях это работать не будет, но в случаях выборки единственного значения либо изменения данных вполне, а таких случаев как правило очень много.

Пример приводится на C# с использованием MySQL.
Вот как это выглядит.
Описываем класс с двумя функциями:
class Sqlishe
    {

        public static string run_mysql(string sql)
        {
            string result = "1";
            try
            {

                string myConnectionString = "Database=" + Hranilishe.MySql_Base + ";Data Source=" + Hranilishe.MySql_Server + ";User Id=" + Hranilishe.MySql_User + ";Password=" + Hranilishe.MySql_Pass + "";
                MySqlConnection myConnection = new MySqlConnection(myConnectionString);
                MySqlCommand myCommand = new MySqlCommand(sql);
                myCommand.Connection = myConnection;
                myConnection.Open();
                myCommand.ExecuteNonQuery();
                myConnection.Close();
            }
            catch
            {
                result = "0";//Вернёт 0 - если ошибка!
            }
            return result;
        }




        public static string run_mysql_return(string sql)
        {
            string result = "0";
            try
            {

                string myConnectionString = "Database=" + Hranilishe.MySql_Base + ";Data Source=" + Hranilishe.MySql_Server + ";User Id=" + Hranilishe.MySql_User + ";Password=" + Hranilishe.MySql_Pass + "";
                MySqlConnection myConnection = new MySqlConnection(myConnectionString);
                MySqlCommand myCommand = new MySqlCommand(sql);
                myCommand.Connection = myConnection;
                myConnection.Open();
                result = myCommand.ExecuteScalar().ToString();
                myConnection.Close();
            }
            catch
            {
                result = "0";//Вернёт 0 - если ошибка!
            }
            return result;
        }


    }


Класс Sqlishe содержит две функции run_mysql — которая предназначена для выполнения запросов типа INSERT, UPDATE и DELETE — и вернёт 0 либо 1 в зависимости от результатов действия, run_mysql_return — которая предназначена для выполнения запросов SELECT — для поиска единственного значения и вернёт 0 либо значение.

Использовать функцию можно в любой части кода, не заморачиваясь на прописывания коннектов и т.п.
Вот так:
string parama = Sqlishe.run_mysql_return("select ostatok from cards where articul='0001'");




2 комментария

avatar
поясните про Hranilishe
avatar
Имя статического объекта который хранит переменные с именем базы, адресом сервера и т.п. Это не обязательно делать именно так, просто в моем случае это реализовано таким образом.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.