2014-12-01 3 views
0
 String id = Request.QueryString["id"]; 
     int no = Int32.Parse(id); 
     string query = "select * from product_desc where d_id='"+no+"' "; 
     SqlDataAdapter Da = new SqlDataAdapter(query, conn); 

В этом коде на момент выполнения он дает ошибку «Строка ввода не была в правильном формате». Как выполнить этот запрос? Пожалуйста, дайте какие-либо предложения или форму по ссылке, чтобы решить эту проблемуКак передать параметр integer в SQL-запросе

+0

Вместо использования строки запроса с помощью сеанса он работать нормально –

ответ

0

Изменить код, как показано ниже:

string id = Request.QueryString["id"] != null ? Request.QueryString["id"].ToString() : "0" ; 
    int no = Convert.ToInt32(id); 
    string query = String.Format("select * from product_desc where d_id={0}",no); 
    SqlDataAdapter Da = new SqlDataAdapter(query, conn); 
+0

Как же ошибка ввода строка не была в правильном формате –

+1

@SunilPatel Проверьте отладчик, Что такое значение Request.QueryString [ «ID»] –

+0

значение id равно «1» –

0

Достаточно сделать следующее дело.

String id = Request.QueryString["id"]; 
int no = Int32.Parse(id); 
string query = String.Format("select * from product_desc where d_id={0}",no); 
SqlDataAdapter Da = new SqlDataAdapter(query, conn); 

У меня все еще есть сомнения, что Request.QueryString ["id"] не возвращает правильное значение на первом месте. Пожалуйста, подтвердите, что я могу обеспечить улучшенный ответ.

+0

Если я передаю параметр String вместо того, чтобы он возвращал правильный результат, но если я передаю параметр int, он выдает ошибку: «Входная строка не была в правильном формате» –

+0

Int32.Parse может выдать это исключение, если id не является целочисленным значением, иначе он должен работать. Не могли бы вы обновить вопрос со значением и точно, в какой точке вы получите ошибку – dotnetstep

0

попробовать этот код

if (string.IsNullOrEmpty(Request.QueryString["id"])) 
{ 
    int no = Convert.ToInt32(Request.QueryString["id"]); 
    string query = String.Format("select * from product_desc where d_id={0}",no); 
} 
0

SQL инъекции:

SQL инъекций является метод, где злоумышленники могут вводить команды SQL в операторе SQL, с помощью ввода веб-страницы.

Введенные команды SQL могут изменять инструкцию SQL и подрывать безопасность веб-приложения.

Для использования SQl-инъекции используйте Parameters.

String id = Request.QueryString["id"]; 
int no = Int32.Parse(id.trim()); 
string query = "select * from product_desc where [email protected]_id"; 
SqlDataAdapter Da = new SqlDataAdapter(query, conn); 
Da.SelectCommand.Parameters.AddWithValue("@d_id", no); 
Da.SelectCommand.CommandType = CommandType.Text; 
+0

@Sunil Patel: Идентификатор обрезки, а затем конвертируйте в int. int no = Convert.ToInt32 (id.Trim()); –