如何使用ASP.NET C#进行参数化查询

时间:2016-11-26 12:40:02

标签: c# asp.net sql-server

我正在尝试创建参数化查询,以比较价格。

这是我使用的查询,问题是它没有显示任何内容或某些时候显示

  

'必须声明标量变量“@ 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());
    }
}

1 个答案:

答案 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();