急!!!!!求大虾解答

ya_Pian 2011-06-07 10:08:38
现在有很多个自定义方法用的结果集合都是同一个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);
}
......


-------------------
没分了,不好意思
...全文
93 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xymoxin 2011-06-07
  • 打赏
  • 举报
回复
看你的方法 似乎每一个type查出的结果集结构都是相同的,不同的就只是id而已,
如果一次把所有的type都查出来放到一个DataSet中,然后每个模块都从这个DS里检索各所需的数据,这样就等于只使用了一次数据库连接,把数据集放在了内存中,然后每次从内存中检索数据,这样会不会好点?
ya_Pian 2011-06-07
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 pengyi_205 的回复:]
不清楚你是否存在多种类型,查完type1,查type2

那直接 id=id1 or id=id2 就行了

如果只是上面描述的,那稍微把过程返过来,

只用一个type 函数,传id把结果查询来,,反正typeN只对id敏感,和你的具体type无关,

查出结果后直直判断type类型,对强结果进行处理
[/Quote]

每个方法都是一个小模块,所以每一个方法拼接字符出入都很大
夺命胖子 2011-06-07
  • 打赏
  • 举报
回复
试下生成静态页吧,缓存方面考虑
夺命胖子 2011-06-07
  • 打赏
  • 举报
回复
不清楚你是否存在多种类型,查完type1,查type2

那直接 id=id1 or id=id2 就行了

如果只是上面描述的,那稍微把过程返过来,

只用一个type 函数,传id把结果查询来,,反正typeN只对id敏感,和你的具体type无关,

查出结果后直直判断type类型,对强结果进行处理

ya_Pian 2011-06-07
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 caozhy 的回复:]
引用 3 楼 ya_pian 的回复:
引用 1 楼 caozhy 的回复:
不用担心,ADO.NET 底层使用了连接池。你多虑了。

只是记得及时关闭不用的连接即可。



但是页面光数据请求动辄就大几十的,导致页面很慢啊

分页啊。。。
[/Quote]

---------------------
是这样的,是首页调用,然后每个方法都是一个小模块,然后取的是top,行数是自定义的
所以。。。
threenewbee 2011-06-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ya_pian 的回复:]
引用 1 楼 caozhy 的回复:
不用担心,ADO.NET 底层使用了连接池。你多虑了。

只是记得及时关闭不用的连接即可。



但是页面光数据请求动辄就大几十的,导致页面很慢啊
[/Quote]
分页啊。。。
ya_Pian 2011-06-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 caozhy 的回复:]
不用担心,ADO.NET 底层使用了连接池。你多虑了。

只是记得及时关闭不用的连接即可。
[/Quote]


但是页面光数据请求动辄就大几十的,导致页面很慢啊
indusl 2011-06-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 caozhy 的回复:]
不用担心,ADO.NET 底层使用了连接池。你多虑了。

只是记得及时关闭不用的连接即可。
[/Quote]


+1
threenewbee 2011-06-07
  • 打赏
  • 举报
回复
不用担心,ADO.NET 底层使用了连接池。你多虑了。

只是记得及时关闭不用的连接即可。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧