Курсы по программированию

Формула программиста
основатель — Волосатов Евгений Витольдович

Базовый ASP.ект / Отказ от статика

  • Нам придётся отказаться от статичного класса базы данных,
    потому что статичный класс продолжает существование
    даже при новых обращениях к нему с новой страницы.
    Спасибо Елене Вставской,
    именно она первая обратила внимание на эту ошибку.
  • Дата отправки отчёта: 12 марта
  • Задание выполнено: за 15 мин.
  • Чему научился: Бороться с ошибками.
  • Что было сложным: норм.
  • Комментарии: Я эту ошибку нашел уже давно в уроке 11.-Работа над ошибками. Я теснил и заметил что после того как было разорвано соединение с сервером он обратно не восстанавливал связь. Было принято решение переписать класс MySql.
    Идея статического класса очень крутая так как мы инициилизируем переменную  MySqlConnection connection один рез и не лазим каждый раз в конфиг (экономим время).
    Подключение я осуществляю в блоке  using (connection) (пример метод select) в котором я подключаюсь (если подключение созданное и лежит в пуле то я беру его от туда)  и при выходе с блока using подключение закрывается ( ложится в пул). Тем самым я экономлю время на подключение к базе данных.

    остался один вопрос как такой метод поведет себя при больших нагрузках??

    Метод AddSlashes нужно доработать. http://php.net/manual/ru/function.addslashes.php

    public static  class SomeSql
        {
            private static MySqlConnection connection;

            static SomeSql()
            {
                InitializationConnectionToDataBase();
            }

            private static void InitializationConnectionToDataBase()
            {
                MySqlConnectionStringBuilder csb = new MySqlConnectionStringBuilder(
                        WebConfigurationManager.ConnectionStrings["connection"].ConnectionString);
                csb.Pooling = true;
                connection = new MySqlConnection(csb.ConnectionString);
            }

            public static DataTable Select(string myQuery)
            {
                using (connection)
                {
                    try
                    {
                        connection.Open();

                        DataTable table = new DataTable();
                        MySqlCommand cmd = new MySqlCommand(myQuery, connection);
                        MySqlDataReader reader = cmd.ExecuteReader();
                        table.Load(reader);
                        return table;
                    }
                    catch (MySqlException exInner)
                    {
                        var ex = new SomeSqlException(exInner.Message,exInner)
                        {
                            Query = myQuery
                        };
                        throw ex;
                    }
                }
            }

            static public string AddSlashes(string text)
            {
                try
                {
                    return text.Replace("'", "\\'").Replace("\"", "\\\"").Replace("\\", "\\\\");
                }
                catch (NullReferenceException)
                {
                    return "";
              }
            }
        }
    }
  • Оценка видео-уроку:
Отчёт от 5219 за Базовый ASP.ект / Отказ от статика




Оцени работу

 
Сохранить страницу:

1. Евгений Витольдович
Евгений Витольдович
ответить
→  Nromik  # Базовый ASP.ект / Отказ от статика / 2016-03-12 13:07

Я помню твое решение на основе синглтона


  • Отчёт оценивали:
    4467Alcatraz+1   1Евгений Витольдович+1   689Igorenzia+1   8886Михаил Ермишин+1   6452Lik_Kirill+1   6925Артём+1   3506Алексей|BrisK|Кривицкий+1   4992Николай+1   4182Farid+1   5760Мариша +1   459Сергей Сергеевич+1   1537Сергей+1   9288Pučko Antonina+1   9237Mais+1   7645Александр Львович+1   7025SergeyN0   791Валерий+1   9634Лис Бесчувственный0   6687villain+1   9427Иван Алексеевич+1   3922Александр+1   2912Игорь+1  

Начинаем практику по языку C#




Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.
Научился: Исправил кучу ошибок, проблему со статиками.
Трудности: По теме сложностей не возникло.
Основа готова, ошибки поправлены, истории добавляются и просматриваются. Остался обзор и сделать фишки из вип-уроков.
Научился: Собственно, ничему) Урок-то дебаггингу посвящен)
Трудности: Ничего
Выполнил задание за 15 минут до начала урока (так что могу зваться учеником-экстрасенсом), исправляя ошибку, возникшую на прошлом уроке =)