我正在尝试创建参数化查询,以比较价格。
这是我使用的查询,问题是它没有显示任何内容或某些时候显示
'必须声明标量变量“@ prc1”。
我的查询是否正确?
我的参数化代码也是吗?
我尝试过:
protected void Page_Load(object sender, EventArgs e)
{
con.ConnectionString = ConfigurationManager.ConnectionStrings["conn"].ConnectionString;
con.Open();
try
{
string price1 = Convert.ToString(Session[price1]);
String q = "SELECT * FROM legacy WHERE [price] >= @prc1";
SqlCommand comm = new SqlCommand(q, con);
comm.Parameters.AddWithValue(@prc1, price1);
SqlDataSource1.SelectCommand = q;
SqlDataSource1.DataBind();
}
catch (Exception ex)
{
Response.Write(ex.ToString());
}
}
答案 0 :(得分:0)
SqlDataSource1
对查询中的参数一无所知。
SqlDataSource.SelectParameters Property
获取包含参数的参数集合 由SqlDataSourceView对象的SelectCommand属性使用 与SqlDataSource控件关联。
var price1 = Convert.ToString(Session[price1]);
var q = "SELECT * FROM legacy WHERE [price] >= @prc1";
SqlDataSource1.SelectCommand = q;
SqlDataSource1.SelectParameters.Add("prc1", price1);
SqlDataSource1.DataBind();