我原来手工绑定的GridView的时候,要做搜索功能只要加几个文本框和1个按钮,按钮代码重新绑定一下GridView就可以了,代码如下
//搜索
    protected void Button2_Click(object sender, EventArgs e)
    {
        OracleConnection conn = new OracleConnection("Data Source=caora;User ID=xx;Password=xx;");
        conn.Open();
        OracleDataAdapter oradar = new OracleDataAdapter("SELECT XMBH , XMMC , JSDWMC , JSDD , HPPZSJ , HPPW  FROM XM where XMBH='" + TextBox2.Text + "' or XMMC='" + TextBox3.Text + "' or JSDWMC='" + TextBox4.Text + "' or JSDD='" + TextBox5.Text + "' order by HPPZSJ ", conn);
        DataSet da = new DataSet();
        oradar.Fill(da, "XM");
        GridView1.DataSource = da.Tables["XM"].DefaultView;
        GridView1.DataBind();
        conn.Close();
    }
问题是,我如果用SqlDataSource控件绑定GridView的话,上面的代码会报错“GridView1”上同时定义了 DataSource 和 DataSourceID。请移除一个定义。
怎么办呢?

解决方案 »

  1.   

    你就撤销掉gridview1和sqldatasource的绑定咯(将gridview1的datasourceid属性清空)
      

  2.   

    自己试出来了哇哈哈,代码改成
    XM.SelectCommand = "SELECT XMBH , XMMC , JSDWMC , JSDD , HPPZSJ , HPPW  FROM XM where XMBH='" + TextBox2.Text + "' or XMMC='" + TextBox3.Text + "' or JSDWMC='" + TextBox4.Text + "' or JSDD='" + TextBox5.Text + "' order by HPPZSJ ";
    GridView1.DataBind();
    就2句,哇哈哈
      

  3.   

    XM.SelectCommand 中的XM不是表名,是SqlDataSource控件的ID
      

  4.   

    真搞不懂,既然你使用adapter来得到一个数据集,怎么又要绑定一个datasource
      

  5.   

    楼之连为什么用SqlDataSource都不知道!
      

  6.   

    你需要做的是当条件改变的时候修改你的SqlDataSource的数据源
      

  7.   

    获取空间的搜索条件值写好SQL语句
    只要将SQL语言赋值给SqlDataSource.SelectCommand 就可以了
    如:
    SqlDataSource.SelectCommand = "SELECT XMBH , XMMC , JSDWMC , JSDD , HPPZSJ , HPPW  FROM XM where XMBH='" + TextBox2.Text + "' or XMMC='" + TextBox3.Text + "' or JSDWMC='" + TextBox4.Text + "' or JSDD='" + TextBox5.Text + "' order by HPPZSJ ";当然可以设置SqlDataSource
            <asp:SqlDataSource ID="SqlDataSource_Search" runat="server" ConnectionString="<%$ ConnectionStrings:SystemUserConnectionString %>" SelectCommand=""></asp:SqlDataSource>