2011-05-27 60 views
2

当用户点击两次以上的搜索按钮时,我给出了给定代码的下列错误信息。有人可以帮助我做错了什么。变量名'@Param'已经被声明

变量名'@Param'已经被声明为 。在查询批次或存储的 过程中,变量名称必须是 。

protected void btnSearch_Click(object sender, EventArgs e) 
{ 
    DS.SelectCommand = 
     "SELECT ReportName, ReportType, 
     FROM Table 
     WHERE ReportName LIKE @param 
     ORDER BY ReportType Desc"; 
    DS.SelectParameters.Add("Param", searchTxtBox.Text.Replace("'", "''")); 
    DS.DataBind(); 
    ListView1.DataBind();    
} 
+0

您是否尝试先清除所有的'DS.SelectParameters'? (在'DS.SelectCommand'行之前),所以每次都有一组新的参数? – lhan 2011-05-27 13:10:22

回答

5

尝试

DS.SelectCommand = 
    "SELECT ReportName, ReportType, 
    FROM Table 
    WHERE ReportName LIKE @param 
    ORDER BY ReportType Desc"; 
DS.SelectParameters.Clear(); 
DS.SelectParameters.Add("Param", searchTxtBox.Text.Replace("'", "''")); 
+0

谢谢@Bala,我把它放在顶部和底部,而不是你指定的地方。干杯!非常棒! – 2011-05-27 13:35:23

0

正如我不能看到DS定义我不能肯定,但我怀疑你使用相同的数据源与其他地方不同的Param。为每个不同的查询使用不同的来源。