-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'.

ただし、数字がない場合は正常に機能します。

私のデータベースには4つの列が含まれています:

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 に答える