[ASP.net]未解的疑惑!

这里讨论的是三(多)层结构中的数据底层!

一般而言,大家在写程序的时候都会把代码写成一个一个的类或函数。同样,写数据库的操作类也是如此。这就出现问题了!
数据库链接类中,实例一个类或调用一个方法,Connection的Open()就打开或是重新实例一次。有时对于一个页面来说,只要Open()一次就可以的了,而在代码中却Open()了多次。这样不就浪费了资源了?

举个例子:
一个有DataGrid或DataList的页面中,大家都会把DataGrid或DataList的.DataSource、.DataBind()写成一个函数对吧。而这个.DataSource一定会调用一个类方法来读取数据。而调用这个方法定要实例一个类,即Connection要Open()一次。这问题就来了。
假如说我们的页面中先要更新一次数据(Insert),再读一次数据库显示数据(Select)。那么这样Connection就Open()和Close()了两次或更多了。
当然,我们可以把Open()和Close()写成公有函数,再在外部来操作。但这样又增加了代码的烦锁了。

不知道大家有没有这样的问题。个人看过几个别人写的三层结构中的底层都是这样!一个方法就Open()和Close()一次。如果一个页面要调用几个方法,那么Open()就好几次了。这不很浪费资源了?
具官方MS的说法:打开到数据库的联接要尽可能的快速关闭
但是如果仅仅是一个页面的几个SQL操作就要Open()和Close()几次,这相比较之下,难道会比Open()和Close()一次来得要快?

posted @ 2005-04-09 16:27  横渡  阅读(1495)  评论(14编辑  收藏  举报