部分代码如下:
//web1.aspx
asp:DataList id="child" runat="server" DataSource='<%# ((DataRowView)Container.DataItem).Row.GetChildRows("myrelation") %>'>
<ItemTemplate><a href='<%# DataBinder.Eval(Container.DataItem, "f_dafl","web2.aspx?f_dafl={0}") %>'><%# DataBinder.Eval(Container.DataItem, "x_name]") %>
</a></ItemTemplate>
</asp:DataList>
--------------------------------
//web2.aspx.cs
string strSel1 = "select * from daxiaoLX where f_dafl=@lx";
DataSet MyDataSet = new DataSet();
OleDbDataAdapter myCommand = new OleDbDataAdapter(strSel1,MyConnection);
myCommand.SelectCommand.Parameters.Add(new OleDbParameter("@lx",50));
myCommand.SelectCommand.Parameters["@lx"].Value = Request.QueryString["f_dafl"];
myCommand.Fill(MyDataSet,"999");
DataList1.DataSource = MyDataSet.Tables["999"].DefaultView;
DataList1.DataBind();
=================================================我的问题是要实现"indexa.aspx?lb=吃喝&slb=火锅&area=%C1%FA%C8%AA”",就是多条件限制后在显示,我上边的代码只能一个条件限制(where f_dafl=@lx)
怎么实现"lb=吃喝&slb=火锅&area=%C1%FA%C8%AA",三个条件过滤后才显示结果呢?
代码怎么写呀?

解决方案 »

  1.   

    <a href='<%# MakeUrl(DataBinder.Eval(Container.DataItem, "字段名1"),DataBinder.Eval(Container.DataItem, "字段名2"),DataBinder.Eval(Container.DataItem, "字段名3")) %>'><%# DataBinder.Eval(Container.DataItem, "x_name]") %>
    </a>protected MakeUrl(object obj,object obj2,object obj3)
    {
      string strReturn ="";
      strReturn = "aaa.aspx?id="+obj.ToString()+"&name="+obj2.ToString()+"&name2="+obj3.ToString();
      return strReturn ;
    }
      

  2.   

    string strSel1 = "select * from daxiaoLX where f_dafl=@lx and  id=@id and name = @name";
    DataSet MyDataSet = new DataSet();
    OleDbDataAdapter myCommand = new OleDbDataAdapter(strSel1,MyConnection);
    myCommand.SelectCommand.Parameters.Add(new OleDbParameter("@lx",50));
    myCommand.SelectCommand.Parameters["@lx"].Value = Request.QueryString["f_dafl"];
    myCommand.SelectCommand.Parameters.Add(new OleDbParameter("@lx",50));
    myCommand.SelectCommand.Parameters["@id"].Value = Request.QueryString["id"];
    myCommand.SelectCommand.Parameters.Add(new OleDbParameter("@lx",50));
    myCommand.SelectCommand.Parameters["@name"].Value = Request.QueryString["name"];
    myCommand.Fill(MyDataSet,"999");
    DataList1.DataSource = MyDataSet.Tables["999"].DefaultView;
    DataList1.DataBind();
      

  3.   

    上面错了个地方。
    有几个参数就加几个参数。根据情况设置参数类型。string strSel1 = "select * from daxiaoLX where f_dafl=@lx and  id=@id and name = @name";
    DataSet MyDataSet = new DataSet();
    OleDbDataAdapter myCommand = new OleDbDataAdapter(strSel1,MyConnection);
    myCommand.SelectCommand.Parameters.Add(new OleDbParameter("@lx",50));
    myCommand.SelectCommand.Parameters["@lx"].Value = Request.QueryString["f_dafl"];myCommand.SelectCommand.Parameters.Add(new OleDbParameter("@id",50));
    myCommand.SelectCommand.Parameters["@id"].Value = Request.QueryString["id"];myCommand.SelectCommand.Parameters.Add(new OleDbParameter("@name",50));
    myCommand.SelectCommand.Parameters["@name"].Value = Request.QueryString["name"];myCommand.Fill(MyDataSet,"999");
    DataList1.DataSource = MyDataSet.Tables["999"].DefaultView;
    DataList1.DataBind();
      

  4.   

    <a href='<%# MakeUrl(DataBinder.Eval(Container.DataItem, "字段名1"),DataBinder.Eval(Container.DataItem, "字段名2"),DataBinder.Eval(Container.DataItem, "字段名3")) %>'><%# DataBinder.Eval(Container.DataItem, "x_name]") %>
    </a>
    忘记设置返回类型了。~~~~~~
    protected string MakeUrl(object obj,object obj2,object obj3)
    {
      string strReturn ="";
      strReturn = "aaa.aspx?id="+obj.ToString()+"&name="+obj2.ToString()+"&name2="+obj3.ToString();
      return strReturn ;
    }
      

  5.   

    参数 @lx 没有默认值。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OleDb.OleDbException: 参数 @lx 没有默认值。源错误: 
    行 119: myCommand.SelectCommand.Parameters.Add(new OleDbParameter("@lx",50));
    行 120: myCommand.SelectCommand.Parameters["@lx"].Value = Request.QueryString["f_dafl"];
    行 121: myCommand.Fill(MyDataSet,"999");
    行 122: DataList1.DataSource = MyDataSet.Tables["999"].DefaultView;
    行 123: DataList1.DataBind();
     
    ===========================
    是不是值没传过来呀???
      

  6.   

    应该是没传递过来。C#是区别大小写的,你看看URL就知道是否传递过来了。
      

  7.   

    已测试成功,非常感谢adandelion(被封杀)!
    接分啦!