当前位置: 代码迷 >> ASP.NET >> 查询的有关问题,@project 已经声明过,变量名在批查询或存储过程内部中必须唯一
  详细解决方案

查询的有关问题,@project 已经声明过,变量名在批查询或存储过程内部中必须唯一

热度:7387   发布时间:2013-02-25 00:00:00.0
查询的问题,@project 已经声明过,变量名在批查询或存储过程内部中必须唯一。
我用的是vs2005 AJAX 操作系统XP SP2
我在用户控件中做个查询,代码:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class UserControl_aqrk_sb : System.Web.UI.UserControl
{
  protected void Page_Load(object sender, EventArgs e)
  {

  }
  protected void Button1_Click(object sender, EventArgs e)
  {
  //工程名称的模糊查询
  ControlParameter cp = new ControlParameter("project", "TextBox1", "Text");
  //获得Select语句,并添加条件
  string str = "SELECT * FROM [aqrk_sb] WHERE ([project] LIKE '%' + @project + '%')";
  //更新Select语句
  SqlDataSource1.SelectCommand = str;
  SqlDataSource1.SelectParameters.Add(cp);
  //重新绑定数据
  GridView1.DataBind();
  }
}
当执行完第一次查询时正确,第二次就不能运行了,提示:
@project 已经声明过,变量名在批查询或存储过程内部中必须唯一。
请高手帮助改一下代码。

------解决方案--------------------------------------------------------
protected void Button1_Click(object sender, EventArgs e) 

//工程名称的模糊查询 
ControlParameter cp = new ControlParameter("project", "TextBox1", "Text"); 
//获得Select语句,并添加条件 
string str = "SELECT * FROM [aqrk_sb] WHERE ([project] LIKE '%' + @project + '%')"; 


//更新Select语句 
SqlDataSource1.SelectCommand = str; 
SqlDataSource1.SelectParameters.Clear(); // 清理参数
SqlDataSource1.SelectParameters.Add(cp); 
//重新绑定数据 


GridView1.DataBind(); 

  相关解决方案