现在有很多个自定义方法用的结果集合都是同一个sql语句,就是某个字段的值不一样,然后我有个页面会分类型调用这些方法,调用次数多了,数据库链接次数也很多,怎么处理这块啊
-------------------------------------------------------------------
如://自定义方法类
public StringBuilder type1(int id1)
{
     StringBuilder str = new StringBuilder();
     DataSet dsLine = linebll.GetDataBySql("select * from XX where id="+id1);
     if (dsLine != null && dsLine.Tables.Count > 0 && dsLine.Tables[0].Rows.Count > 0)
     {
         for (int i = 0; i < dsLine.Tables[0].Rows.Count; i++)
         {
             str.Append("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
         }
     }
}
public StringBuilder type2(int id2)
{
     StringBuilder str = new StringBuilder();
     DataSet dsLine = linebll.GetDataBySql("select * from XX where id="+id2);
     if (dsLine != null && dsLine.Tables.Count > 0 && dsLine.Tables[0].Rows.Count > 0)
     {
         for (int i = 0; i < dsLine.Tables[0].Rows.Count; i++)
         {
             str.Append("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
         }
     }
     return str;
}public StringBuilder type3(int id3)
{
     StringBuilder str = new StringBuilder();
     DataSet dsLine = linebll.GetDataBySql("select * from XX where id="+id3);
     if (dsLine != null && dsLine.Tables.Count > 0 && dsLine.Tables[0].Rows.Count > 0)
     {
         for (int i = 0; i < dsLine.Tables[0].Rows.Count; i++)
         {
             str.Append("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
         }
     }
}public StringBuilder typeN(int idN)
{
    ......
}
----------------------------------------------
//调用页面
if(type=="type1")
{
     type1(id1);
}
if(type=="type2")
{
     type2(id2);
}
if(type=="type3")
{
     type3(id3);
}
......
-------------------
没分了,不好意思

解决方案 »

  1.   

    不用担心,ADO.NET 底层使用了连接池。你多虑了。只是记得及时关闭不用的连接即可。
      

  2.   


    ---------------------
    是这样的,是首页调用,然后每个方法都是一个小模块,然后取的是top,行数是自定义的
    所以
      

  3.   

    不清楚你是否存在多种类型,查完type1,查type2那直接 id=id1 or id=id2 就行了如果只是上面描述的,那稍微把过程返过来,只用一个type 函数,传id把结果查询来,,反正typeN只对id敏感,和你的具体type无关,查出结果后直直判断type类型,对强结果进行处理
      

  4.   

    看你的方法 似乎每一个type查出的结果集结构都是相同的,不同的就只是id而已,
    如果一次把所有的type都查出来放到一个DataSet中,然后每个模块都从这个DS里检索各所需的数据,这样就等于只使用了一次数据库连接,把数据集放在了内存中,然后每次从内存中检索数据,这样会不会好点?