-1

我正在使用数据集从数据库中检索一些信息,如下所示:

    protected DataSet getInfo() //getting the user info
{
    string id = Request.QueryString["User"];

    SqlCommand cmd = new SqlCommand("SELECT * FROM copy WHERE id=@id", conn());
    cmd.Parameters.AddWithValue("@id", id);

    DataSet ds = new DataSet();
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    da.Fill(ds);

    return ds;
}

   cvPage.InnerHtml = getInfo().Tables[0].Rows[0]["cv"].ToString();
   clPage.InnerHtml = getInfo().Tables[0].Rows[0]["cl"].ToString();
   bioPage.InnerHtml = getInfo().Tables[0].Rows[0]["bio"].ToString();

它工作正常,直到查询字符串中有一个数字,所以如果:

QueryString["User"] = "111111"

我会得到一个不正确的语法错误:

Incorrect syntax near '111111'.

但如果没有数字,它将正常工作。

我的数据库包含四列:

id | varchar
cv | nvarchar
cl | nvarchar
bio | nvarchar

我正在使用 asp.net 4.0。

问题是什么?

谢谢

4

1 回答 1

4
 SqlCommand cmd = new SqlCommand("SELECT * FROM copy WHERE id= CONVERT(varchar(4000), @id) ", conn());
于 2012-02-22T23:11:14.740 回答