1.首页显示性能问题
文章类的站,分了十几个子分类。首页调用每个分类最新的5行数据显示。一直用最笨的办法,拖用户控件到首页,通过给控件不同的参数来实现显示不同类别的内容。仔细想想,一个文章类的首页有十几个板块,尽管每个分类只取5行数据,但显示一次首页岂不是要对数据库进行十几次连接?这样性能也太浪费了。虚拟主机,没有也不打算生成静态页面。不知道大家都是怎么做的呢?2.建立事务并执行一组带参数的SQL语句有个自己改写的数据库操作类,实现了
1.执行带一组参数SQL语句
 public int ExecuteNonQuery(string sql, params SqlParameter[] values)
{...}
2.建立事务并执行一组不带参数的SQL语句public bool TransacExecuteNonQuery(ArrayList SQLStringList)
{
  .....
  SqlTransaction trans = Connection.BeginTransaction();
  .....//有省略
 try
 {
  foreach (String str in SQLStringList)
  {
    cmd.CommandText = str;
    cmd.ExecuteNonQuery();
  }
  trans.Commit();
 }
 catch (SqlException ex)
 {
  trans.Rollback();
  throw ex;
 }
 finally
 {
  trans.Dispose();
 }
}
现在想实现建立事务并执行一组SQL语句,每条SQL语句又是带参数或不带参数的,参数数量也不固定。这个问题头大了,超出了能力范围,搞了好久也不知道该怎么传那个参数。这个我知道说起来应该会比较麻烦,但还是希望热心的朋友指教。谢谢。

解决方案 »

  1.   

    缓存,连接及时关闭,LINQ TO SQL
    遍历
     SqlConnection conn = new SqlConnection("asdf");
            SqlTransaction tran = conn.BeginTransaction();
            try
            {            tran.Commit();
            }
            catch (Exception ex)
            {
                tran.Rollback();   
            }
    using (TransactionScope tsCope = new TransactionScope())
      {
      tsCope.Complete();
      }
     
     
      

  2.   

    一般首页我都把所有查询语句写在存储过程里,通过dr.NextResult()读取下一条语句
    减少多次数据库请求
    如果首页有一些tab切换的我都用ajax,如果用户没点到那里不会有数据,减少页面大小lz弄过红色的也好,干嘛弄个灰色的,看了多累
      

  3.   

    1 的话怕连接数过多的话可以把要查的语句连接在一起后一起提交,然后返回到dataset中后用dataset.table[i]来获取具体你的分类的数据,接着在做页面缓冲。
    2 有点不懂 参数不固定,难道你的sql语句没有固定格式的吗,如果没那怎么可能和到一组?