我的TableAdapter有两个SelectMethod,想通过编码进行选择,可是换了名称以后,却怎么也找不到参数了?代码如下.
  this.ObjectDataSource1.SelectMethod = "GetDataBySearchCaption";
            this.ObjectDataSource1.DataBind();
            this.ObjectDataSource1.SelectParameters[0].DefaultValue = this.TextBox4.Text;
            this.ObjectDataSource1.Select();
            this.Page.DataBind();

解决方案 »

  1.   

    直接把这个this.ObjectDataSource1.SelectMethod = "GetDataBySearchCaption";改掉不就行了吗?
      

  2.   

    SelectMethod这个是自动生成的,如果改了的话那么在你的dataset中要有相应的方法,并且方法需要的值也得手工添上,最好让它自己生成你可以在dataset中加上你要的方法
      

  3.   

    改了SelectMethod就要重新设置参数:this.ObjectDataSource1.SelectMethod = "GetDataBySearchCaption";
            Parameter par1 = new Parameter();
            par1.Type = TypeCode.Single;
            par1.DefaultValue = 1;
            this.ObjectDataSource1.SelectParameters.Add(par1);        ControlParameter par2 = new ControlParameter("parname", "TextBox1", "Text");
            this.ObjectDataSource1.SelectParameters.Add(par2);//..........
      

  4.   

    我的TableAdapter有一个DataTable,有两个SelectMethod,我是想在点击后使其使用另一个SelectMethod,但改变了SelectMethod的值后,其参数成员数量却变为0了,原本我的这个SelectMethod是有参数成员的.
      

  5.   

    这是我的完整代码,按照修改后的,可是页面上还是没有返回结果,断点后发现参数无数据:
     protected void Button1_Click(object sender, EventArgs e)
        {
            
                this.ObjectDataSource1.SelectMethod = "GetDataBySearchCaption";            this.ObjectDataSource1.SelectParameters.Clear();
                //建立参数
                ControlParameter parc = new ControlParameter("Search", "TextBox4","Text");
                parc.DefaultValue = this.TextBox4.Text;
                this.ObjectDataSource1.SelectParameters.Add(parc);
                this.ObjectDataSource1.DataBind();            this.ObjectDataSource1.Select();
                this.Page.DataBind();
         
        }
      

  6.   

    个人感觉objectdatasource只是提供了写"增加与修改代码"方便,因为可以配合表现控件应用,而不必写手工绑定的代码.但是如果中间动态改变查询的方法,反而增加了逻辑上的复杂,在这种情况下,还不如在内存中建表,然后直接写自已的逻辑.