<asp:SqlDataSource ID="SqlDataSource1" runat="server" OnSelected="SqlDataSource1_Selected" ConnectionString="<%$   ConnectionStrings:SqlConnStr2 %>"
         SelectCommand="SELECT [name], [sex], [adress], [nation], [recordData], [idCard] FROM [class]">
</asp:SqlDataSource>
这样可以实现分页功能,但是我要是有查询条件该怎样实现呢?参数该怎样得到呢,
比如我按性别或学生证?谢谢!
在线急等!

解决方案 »

  1.   

    SelectCommand="SELECT [name], [sex], [adress], [nation], [recordData], [idCard] FROM [class] WHERE [name] = @name"> 
      

  2.   

    可以cs文件里用dataset来实现哪,我从来都没用过SqlDataSource,dataset可以指定从第几条数据开始读,一共读多少条数据,这样不就可以分页了么?
      

  3.   

    重新设置一下即可:
    SqlDataSource1.SelectCommand = "SELECT [name], [sex], [adress], [nation], [recordData], [idCard] FROM [class]  WHERE ([学生证]= '"+ 变量 +"')";
      

  4.   

    <asp:SqlDataSource ID="SqlDataSource1" runat="server" OnSelected="SqlDataSource1_Selected" ConnectionString="<%$ ConnectionStrings:SqlConnStr2 %>"
                SelectCommand="SELECT [name], [sex], [adress], [nation], [recordData], [idCard] FROM [class] WHERE ([idCard] = @idCard) ">
                <SelectParameters>
                    <asp:FormParameter FormField="idCardTxt" Name="idCard" Type="String" />
                </SelectParameters>
            </asp:SqlDataSource>但是我得不到idCardTxt里面的值,idCardTxt是上一个页面的一个的TextBox的ID
    <asp:Label ID="IdCard" runat="server" Text="身份证"></asp:Label>
    <asp:TextBox ID="idCardTxt" runat="server"></asp:TextBox>
      

  5.   

    怎么会呢?
    改变idCard参数,在Button的click事件下打入以下代码:SqlDataSource1.SelectParameters["idCard"].DefaultValue = idCardTxt.Text;
      

  6.   

    8楼那个是对的了,但变化比较大的时候
    也可以完全自己写selectCommand,
    先把gridview上的 "DataSourceId=...."  删了,当根据用户填写的结果,自己构造好SQL语句后在SqlDataSource1.selectCommand=sql;
    gridView1.dataSourceId="SqlDataSource1";//注意是字符串
    gridView1.DataBind();
      

  7.   

    8楼说的不对呀我的页面是这样的。
    a页面是一个文本框
    <asp:Label ID="IdCard" runat="server" Text="身份证"> </asp:Label> 
    <asp:TextBox ID="idCardTxt" runat="server"> </asp:TextBox> 
    点击a页面查询按钮后查询出来的结果在b页面显示8楼说的:改变idCard参数,在Button的click事件下打入以下代码: 
    SqlDataSource1.SelectParameters["idCard"].DefaultValue = idCardTxt.Text; 我的a页面根本就没有SqlDataSource1这个控件,这个控件在b页面里面的。谢谢各位的指导,问题解决啦就加分。
      

  8.   

    <asp:SqlDataSource ID="SqlDataSource1" runat="server" OnSelected="SqlDataSource1_Selected" ConnectionString=" <%$ ConnectionStrings:SqlConnStr2 %>" 
                SelectCommand="SELECT [name], [sex], [adress], [nation], [recordData], [idCard] FROM [class] WHERE ([idCard] = @idCard) "> 
                <SelectParameters> 
                    <asp:FormParameter FormField="idCard" Name="idCard" Type="String" /> 
                </SelectParameters> 
            </asp:SqlDataSource>