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

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

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

  • Нам придётся отказаться от статичного класса базы данных,
    потому что статичный класс продолжает существование
    даже при новых обращениях к нему с новой страницы.
    Спасибо Елене Вставской,
    именно она первая обратила внимание на эту ошибку.
  • Дата отправки отчёта: 28 февраля 2016 г.
  • Задание выполнено: за 15 мин.
  • Чему научился: Я узнал, как создавать деструктор
  • Что было сложным: Ничего
  • Комментарии: Кто-то у меня пытался грохнуть таблицу. Не получилось =)

    Спасибо за урок!
  • Оценка видео-уроку:
Отчёт от 6203 за Базовый ASP.ект / Отказ от статика




Оцени работу

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

2146. Иван
Иван
ответить
→  Николай (nick27m)  # Базовый ASP.ект / Отказ от статика / 2016-02-29 00:30

Огого, какие страсти! Здорово. что не удалось сломать таблицу!


8886. Михаил Ермишин
Михаил Ермишин
ответить
→  Николай (nick27m)  # Базовый ASP.ект / Отказ от статика / 2016-02-28 23:38

Ой, я что-то сломал :~( Прости.


8886. Михаил Ермишин
Михаил Ермишин
ответить
→  Николай (nick27m)  # Базовый ASP.ект / Отказ от статика / 2016-02-28 23:33

У них встроенная защита!


8886. Михаил Ермишин
Михаил Ермишин
ответить
→  Николай (nick27m)  # Базовый ASP.ект / Отказ от статика / 2016-02-28 23:33

Чёрт! A potentially dangerous Request.Form value was detected from the client (title="<script>alert("XSS T...").


8886. Михаил Ермишин
Михаил Ермишин
ответить
→  Валерий Жданов  # Базовый ASP.ект / Отказ от статика / 2016-02-28 23:30

Ну естественно! Сейчас буду делать XSS атаку }:~)


791. Валерий Жданов
Валерий Жданов
ответить
→  Николай (nick27m)  # Базовый ASP.ект / Отказ от статика / 2016-02-28 23:18

Это хорошо, что не получилось))


8886. Михаил Ермишин
Михаил Ермишин
ответить
→  Николай (nick27m)  # Базовый ASP.ект / Отказ от статика / 2016-02-28 22:40

Не работает. Я пробовал


  • Отчёт оценивали:
    5760Мариша +1   9427Иван Алексеевич+1   2353Павел Журавлевич+1   791Валерий Жданов+1   6925Артём+1   8886Михаил Ермишин+1   9237Mais+1   459Сергей Сергеевич+1   689Igorenzia+1   24Оля+1   2146Иван+1   4467Alcatraz+1   6452Кирилл Шмойлов+1   4992Николай+1   4395Денис+1   7645Александр Львович+1   2721mikemet+1   1Евгений Волосатов+1   9044y0lych+1   6987MichGar+1   7157muxasio+1   6203Николай (nick27m)+1  

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




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

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: Исправил кучу ошибок, проблему со статиками.
Трудности: По теме сложностей не возникло.
Основа готова, ошибки поправлены, истории добавляются и просматриваются. Остался обзор и сделать фишки из вип-уроков.
Научился: Бороться с ошибками.
Я эту ошибку нашел уже давно в уроке 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 ""; } } } }