1. C# / Говнокод #15854

    +136

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    SqlConnection con = new SqlConnection(connectionString);
                string sql = "SELECT idea.Id, idea.Small_text, idea.Full_text, idea.Example_text, ";
                sql = sql + " ul.FullName as Avtor, ref.Name as Status, even.date_act, (select count (*) from events ev where ev.id_action=2 and ev.id_target=idea.Id and ev.type_target=1) as CountComm, (select count (*) from events ev where ev.id_action=57 and ev.id_target=idea.Id and ev.type_target=1) as Voit, (select max(ev.date_act) from events ev where ev.id_action in (1,2,4,5,7,8,9,10,58,60,61,62,63,64,65,66,67,68,69,70,71,72,74) and ev.id_target=idea.Id and ev.type_target=1) as Last_action";
                sql = sql + " FROM Idea idea, UserLists ul, Refbook ref, Events even ";
                sql = sql + " WHERE idea.Avtor=ul.Id and idea.Status_id = ref.Id and even.id_action=1 and even.type_target=1 and even.id_target=idea.id ";
                if (id >= 0)
                    sql = sql + "  and idea.Status_id=" + id;
                if (id_avtor >= 0)
                    sql = sql + "  and idea.Avtor=" + id_avtor;
                sql = sql + " ORDER BY Last_action desc";
    
                SqlCommand cmd = new SqlCommand(sql, con);
                cmd.CommandType = CommandType.Text;
                List<Idea> Ideas = new List<Idea>();
                using (con)
                {
                    con.Open();
                    SqlDataReader reader = cmd.ExecuteReader();
                    while (reader.Read())
                    {
                        Idea idea = GetIdeaInfo(Int32.Parse(reader["Id"].ToString()));
                        Ideas.Add(idea);
                    }
                    reader.Close();
                    return Ideas;
                }

    Принял еще один проект. ASP.NET MVC4. Автор уехал в Новую Зеландию.

    Запостил: Vince, 28 Апреля 2014

    Комментарии (5) RSS

    • Как это мне знакомо! :-(
      Ответить
    • Тьфу, блеа.
      Даже на T-SQL можно писать по-мускульному.
      Ответить
      • Нету же важного элемента.
        SELECT `idea`.`Id`, `idea`.`Small_text`, `idea`.`Full_text`,` idea`.`Example_text`
        Ответить
    • Сначала подумал, что проблема в SQL-инъекции, Потому как вместо command.Parameters.AddWithValue используется простая конкатенация. Потом догадался прокрутить до упора вправо... О боже, езжайте за ним в Новую Зеландию, прихватите с собок АК47. Перед непосредственным применение не забудьте сказать фразу "за чистый генофонд". Удачи, командировочные получите в аэропорту, вылетайте немедленно.
      Ответить
    • В один из вечеров, когда родители парней были на очередном официальном рауте по работе, Артем пришёл домой пьяный в дым, случайно завалился в комнату брата, когда тот уже спал, споткнулся обо что-то и растянулся на полу, глупо хихикая.
      Ответить

    Добавить комментарий