<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:AppConnectionString %>" SelectCommand="SELECT ProductInfo.ProductName, ProductInfo.ProductPrice, ProductInfo.ClickCount, ProductInfo.new, ProductInfo.AddTime, ProductInfo.Oriprice, ProductInfo.SavePrice, ProductInfo.discount, ProductInfo.ImagesUrl, ProductInfo.UserID, ProductInfo.schoolID, school.schoolName, school.schoolID AS Expr1 FROM ProductInfo INNER JOIN school ON ProductInfo.schoolID = school.schoolID WHERE (ProductInfo.ProductName LIKE '%' + @ProductName + '%')" >
       <SelectParameters>
             <asp:QueryStringParameter Name="ProductName" QueryStringField="com" />
         </SelectParameters>
     </asp:SqlDataSource>
红色部分的我在前台的html代码中不能用变量,我想用变量代替红色的内容。
就像下面的代码可以在后台CS文件中执行。但放在前台就用不了了。
因为使用了分页。所以必须在前台直接赋值。否则像下面的在后台绑定。分页效果就不能用了 this.SqlDataSource1.SelectCommand = "SELECT ProductInfo.ProductName, ProductInfo.ProductPrice, ProductInfo.ClickCount, ProductInfo.new, ProductInfo.AddTime, ProductInfo.Oriprice, ProductInfo.SavePrice, ProductInfo.discount, ProductInfo.ImagesUrl, ProductInfo.UserID, ProductInfo.schoolID, school.schoolName, school.schoolID AS Expr1 FROM ProductInfo INNER JOIN school ON ProductInfo.schoolID = school.schoolID WHERE (" + Request.QueryString["sql"] + " LIKE '%" + Request.QueryString["com"] + "%')";

解决方案 »

  1.   

      this.SqlDataSource1.SelectCommand   =   "SELECT   ProductInfo.ProductName,   ProductInfo.ProductPrice,   ProductInfo.ClickCount,   ProductInfo.new,   ProductInfo.AddTime,   ProductInfo.Oriprice,   ProductInfo.SavePrice,   ProductInfo.discount,   ProductInfo.ImagesUrl,   ProductInfo.UserID,   ProductInfo.schoolID,   school.schoolName,   school.schoolID   AS   Expr1   FROM   ProductInfo   INNER   JOIN   school   ON   ProductInfo.schoolID   =   school.schoolID   WHERE   ( "   +   Request.QueryString[ "sql "]   +   "   LIKE   &apos;% "   +   Request.QueryString[ "com "]   +   "% &apos;)&apos; 是单引好的
      

  2.   

    使用VS2005自动生成的代码是有一定局限性的.其实你 可以用另外一种方式达到你所期望的效果..楼主不就是想通过产品名称查询吗..你完全可以借用DROPDOWNLIST 列出所有的产品然后选用查询
      

  3.   

    同意3楼.可以考虑combobox做.也许会更简单点.我写了个小程序就拿这个做的.类似于你的
      

  4.   

    同意3楼.可以考虑combobox做.也许会更简单点.我写了个小程序就拿这个做的.类似于你的
      

  5.   

    如果楼主必须用这种方法读数据库的话,试试我这个方法
    在.CS文件的 page_load 事件函数之前声明一个变量:
    public string SQL = "";
    //    protected void Page_Load(object sender, EventArgs e)
    然后再到Page_Load(object sender, EventArgs e)事件中为它赋值:
    if (Request.QueryString["sql"] != null)
    {
     SQL = Request.QueryString["sql"]; 
    }在前台aspx文件中就可以在相应的地方用<%=SQL%>来引用值了
      

  6.   

    我是用DROPDOWNLIS,TRequest.QueryString[ "sql "]的值就是DROPDOWNLIST的值。
      

  7.   

    我用一个DROPDOWNLIST和一个TEXTBOX根据DROPDOWNLIST的选项查询TEXTBOX的内容
      

  8.   

      Request.QueryString[ "sql "]是dropdownlist的值 Request.QueryString[ "com "]是textboxt值。
    使用VS2005自动生成的代码的话。前台代码怎么写
      

  9.   

    <asp:SqlDataSource   ID= "SqlDataSource1 "   runat= "server "   ConnectionString= " <%$   ConnectionStrings:AppConnectionString   % > "   SelectCommand= "SELECT   ProductInfo.ProductName,   ProductInfo.ProductPrice,   ProductInfo.ClickCount,   ProductInfo.new,   ProductInfo.AddTime,   ProductInfo.Oriprice,   ProductInfo.SavePrice,   ProductInfo.discount,   ProductInfo.ImagesUrl,   ProductInfo.UserID,   ProductInfo.schoolID,   school.schoolName,   school.schoolID   AS   Expr1   FROM   ProductInfo   INNER   JOIN   school   ON   ProductInfo.schoolID   =   school.schoolID   WHERE   ProductInfo.ProductName=@Productname selectCommandType="Text"   > 
                  <SelectParameters > 
                              <asp:ControlParameter   Name= "ProductName "  ControlId="DropDwonList1" PropertyName="selectValue" / > 
                      </SelectParameters > 
              </asp:SqlDataSource > 
    你试试这个..前台加个DROPDOWNLIST 列出所有产品的名称
      

  10.   

    ProductInfo.ProductName=@Productname   
    ProductInfo.ProductName 用的是DropDwonList的值
    @Productname  用的是textbox值。
    有两个变量啊。
    如果只有一个变量的话,像szjstar当然可以实现。但问题是 ProductInfo.ProductName也是个变量。该如何表示呢?
      

  11.   

    楼主说是你想用两个变量来查来是吗...你的WHERE里使用两个变量来查询...就可以呀.不过我觉得你搜索强的话最好用三层架构比较好....数据层.与业务逻辑层及UI层..这样比较好