首页上做很多滑动门,就像163那样
但是用到的DataReader代码结构基本上都是一样的,只有查询的sql不一样
请问下我如何去写一个公共类或者其他方法来实现传递不同的sql和Literal进去实现数据的读取
然后Literal又该如何去调用呢?

解决方案 »

  1.   

    //Literal的ID和要执行sql的一个键值对
    Dictionary<string, string> dic = new Dictionary<string, string>();
    foreach(var item in dic)
    {
           Literal ltl = this.FindControl(item.Key) as Literal;
           if (ltl != null)
           {
                ltl.Text = //这里写用item.Value进行SQL操作对ltl赋值
           }
    }
      

  2.   

    不好意思,没表达清楚
    是列出前7条数据不是一条,我是想通过传参,把不同的sql传递进去取数据
    这样就不用重复写代码
      

  3.   


    private void Page_Load(object sender, System.EventArgs e)
    {
        listpic4.Text = show("select top 7 id,a_title,right(convert(varchar(10),a_datetime,120),5)as times from c_article order by a_datetime desc", "listpic4", "a_title");
        listpic1.Text = show("select top 7 id,p_title,right(convert(varchar(10),p_datetime,120),5)as times from c_pic order by p_datetime desc", "listpic1", "p_title");
        listpic2.Text = show("select top 7 id,a_title,right(convert(varchar(10),a_datetime,120),5)as times from c_article order by a_datetime desc", "listpic2", "a_title");
        listpic3.Text = show("select top 7 id,p_title,right(convert(varchar(10),p_datetime,120),5)as times from c_pic order by p_datetime desc", "listpic3", "p_title");
    }
    protected static SqlDataReader reDatareader(string Sql)
            {
          SqlConnection conns = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnStr"]);
          conns.Open();
          SqlCommand cmd = new SqlCommand(Sql, conns);
          SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
          return dr;
            }public string show(string Sql,string labelname,string colnumname)    
         {      
           SqlDataReader huadong = reDatareader(Sql);      
                         
            while (huadong.Read()) 
               {
                 labelname = "<li><div class='text002'><div class='span_left'><a href='#'>" + huadong[colnumname] + "</a></div><div class='span_right'>" + huadong["times"] + "</div></div></li>";
               }
            return labelname;
        }我这样做只能返回第一条数据,不能读取到7条各位大哥帮忙看看啊
      

  4.   

    if(dr.HasRows)
    {
    while(dr.Read)
    {
    ................
    }
    }