2012-02-22 14 views
-1

が含まれている場合、私は、このようなデータベースからいくつかの情報を取得するために、データセットを使用していたデータベースから取得:asp.netエラークエリ文字列は数

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

    SqlCommand cmd = new SqlCommand("SELECT * FROM copy WHERE [email protected]", 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(); 

とクエリ文字列の数字があるまで、それは正常に動作します何NUがない場合

Incorrect syntax near '111111'. 

しかし:もしそうなら:

QueryString["User"] = "111111" 

私は間違った構文エラーを取得しますそれはうまく動作します。私はasp.net 4.0を使用しています

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

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

何が問題ですか?

おかげ

+1

は、あなたが本当に 'id'は' varchar'する必要がありますか? –

+0

sql serverプロファイラを使用して、シーンの背後で実行されている正確なクエリを確認します。 – Beatles1692

+0

@AbeMiessler - はい、それはvarcharでなければなりません。しかし、私はすでにCASTをintとして試していて、うまくいきませんでした。 – Wahtever

答えて

4
SqlCommand cmd = new SqlCommand("SELECT * FROM copy WHERE id= CONVERT(varchar(4000), @id) ", conn()); 
+0

文字列intに変換しようとしましたが、効果がありません – Wahtever

+0

編集されました。試してみる。 –

+0

運がないと試しました。 – Wahtever

関連する問題