2016-05-31 5 views
-2

Я получил сообщение об ошибке с Request.QueryString, и я не могу показаться, чтобы найти какое-либо решение ..Как получить доступ к Request.QueryString из любого места?

public static DataTable SelectFrom(string Table, string Felt, string query) 
    { 
    DataTable dt = new DataTable(); 
    try 
    { 

     SqlCommand cmd = new SqlCommand("SELECT * FROM " + Table + " WHERE " + Felt + " = @parameter", conn); 
     cmd.Parameters.AddWithValue("@parameter", Request.QueryString[query]); 

     SqlDataAdapter ad = new SqlDataAdapter(cmd); 
     ad.Fill(dt); 
    } 
    catch 
    { 

    } 
    return dt; 
} 
+0

Какая ошибка у вас возникла? –

+0

Какая ошибка? –

+1

использовать 'catch (Exception ex)' и записывать/отлаживать его, а не пустую 'catch', чтобы вы могли видеть, что происходит. –

ответ

1

Вы пытаетесь получить QueryString внутри static метода и нет Request object внутри этого метода, так что вы должны использовать.

HttpContext.Current.Request.QueryString 

Статический метод.

+0

Спасибо, ребята, мне нужна вся помощь. HttpContext.Current. Было решение. – krogslundb

2

Кажется, ваш код находится внутри отдельного класса или сборки (не внутри класса страницы), если да использовать

httpcontext.current.request.QueryString

+2

«Кажется, ваш код внутри класса или сборки» - где еще такой код может быть? –

+0

Ну, когда ваша фраза так выглядит, это выглядит странно, я имел в виду не внутри класса страницы напрямую –

0

сообщите нам об ошибке, которую вы получили.

Всегда перед использованием Request.QueryString необходимо проверить его на нуль, как

if(Request.QueryString[query] != null && Request.QueryString[query].ToString() != string.empty) 
+0

Проверьте, не является ли ваш код в классе страниц или автономном классе, потому что «Запрос» не работает в автономном классе, так как он является свойством класс страницы. –