【发布时间】:2012-03-13 08:40:31
【问题描述】:
我正在使用数据集从数据库中检索一些信息,如下所示:
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。
有什么问题?
谢谢
【问题讨论】:
-
你真的需要
id成为varchar吗? -
使用 sql server profiler 查看幕后正在执行的确切查询。
-
@AbeMiessler - 是的,它必须是一个 varchar。但我已经尝试将 CAST 作为 int 并且没有工作。
-
我同意@AbeMiessler。否则,您可以在 select 语句中将整数“1111”转换为 varchar。
-
@ChristopherRathermel - 我已经尝试过 CAST 和 CONVERT 但没有用。
标签: asp.net sql-server dataset query-string request.querystring