如何在SQL查询中传递整数参数

时间:2014-12-01 10:29:14

标签: asp.net sql-server-2008

        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);

在此代码中,在执行时它会给出错误"输入字符串的格式不正确"。 我该如何执行此查询?请提供任何建议或表格链接以解决此问题

4 个答案:

答案 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);

答案 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"]在第一时间没有返回正确的值。请确认,以便我能提供更好的答案。

答案 2 :(得分: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);
}

答案 3 :(得分:0)

SQL注入:

SQL注入是一种技术,恶意用户可以通过网页输入将SQL命令注入SQL语句。

注入的SQL命令可能会改变SQL语句并危及Web应用程序的安全性。

因此使用Parameters来避免SQl注入攻击。

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