none
Удаление параметров из запроса RRS feed

  • Вопрос

  • Доброе утро!

    SELECT * FROM [Table] Where [C1] Like '%'+@par1+'%'


    private void dbSelect()
        {
            if (Page.RouteData.Values["par"] == null) { sqldb.SelectParameters.Remove(sqldb.SelectParameters["par1"]); }
            else { sqldb.SelectParameters["par1"].DefaultValue = Page.RouteData.Values["par"].ToString(); }
                }


    protected void Page_Load(object sender, EventArgs e)
        {dbSelect();
                    
         }
            
            
        

    Если параметр par отсуствует , я все равно получаю сообщение что нужно объявить @par1

    Где моя ошибка?

     
    • Изменено Program-s.g 1 октября 2013 г. 6:25
    1 октября 2013 г. 6:23

Ответы

  • ну тогда проще сначало обьявить все параметры а потом уже собирать запрос основываясь на количестве параметров

    добовляем все параметры что нужны

    проверяем если количество больше 0 к запросу добовляем where

    в цикле смотрим что за параметер и добовляем его в конце запроса

    как то так

    • Помечено в качестве ответа Program-s.g 1 октября 2013 г. 13:40
    1 октября 2013 г. 7:45

Все ответы

  • Он присутствует у вас в запросе, что бы такого небыло формируйте запрос в зависимости от того есть параметер или нету

    private void dbSelect()
        {
            if (Page.RouteData.Values["par"] == null) { sqldb.SelectParameters.Remove(sqldb.SelectParameters["par1"]); 
    sqldb.SelectCommand="SELECT * FROM [Table]"}
            else { sqldb.SelectParameters["par1"].DefaultValue = Page.RouteData.Values["par"].ToString(); 
    sqldb.SelectCommand="SELECT * FROM [Table] Where [C1] Like '%'+@par1+'%'"}
                }




    1 октября 2013 г. 6:44
  • Да, этот способ лучше , если у меня 1-2 параметра, а их более 6. потому удобно сначала объявить, а потом если нужно удалить.
    1 октября 2013 г. 7:40
  • ну тогда проще сначало обьявить все параметры а потом уже собирать запрос основываясь на количестве параметров

    добовляем все параметры что нужны

    проверяем если количество больше 0 к запросу добовляем where

    в цикле смотрим что за параметер и добовляем его в конце запроса

    как то так

    • Помечено в качестве ответа Program-s.g 1 октября 2013 г. 13:40
    1 октября 2013 г. 7:45