这次做西厢情缘这个网站,是一个纯粹的.net 2.0开发,.net 2.0自带的数据库连接缓冲池机制能够对传统ASP开发方式带为很大的改变。
在传统的数据库应用开发过程中,每每一段应用,往往是先打开数据库连接,然后下面的代码一直使用这个连接进行数据库交互,但是.net的数据库连接池缓冲却可以分别把每一段应用包装起来,在编写这些小块包的时候,不再顾及非要去使用原来打开的连接,而直接从连接池中申请,使用完毕以后归还,由于把大段的代码分散到几个相对较小的模块中去,化整为零可以为我们简化整个代码的复杂度,从而提高开发效率。
在.net 2.0中如果你用的数据库连接字符串每次都是一样的,系统会自动启用连接池的,这种自动启动连接池的方案可以把传统的重复打开数据库连接的开销降到最低。这样,我们就可以把精力放在解决实际应用逻辑上面了。
而在很多代码中,常常有需要通过运行一个SQL获取一个统计值,或是英文或数字到汉字的转义过程,并不需要太多的数据库操作,利用数据库连接池的缓冲特性,我们写这样的封装函数来解决问题的时候就不用担心性能的因素,直接感受代码精简带来的编程乐趣!如以下示例代码返回一种人群在总人数的百分比:
string strsql = string.Format("select count(*) from finaltest where {0}={1}", strKey, nScore);
X = DBFunc.GetValueBySql(strsql);
if(X==0)return 0;
string strsql = "select count(*) from finaltest ";
Y = DBFunc.GetValueBySql(strsql);
return X*100/Y;
附DBFunc(数据库封装类)的一个静态函数!
class DBFunc{
public static int GetValueBySql(string strsql)
{
SqlConnection _connection = new SqlConnection(WebConfigurationManager.ConnectionStrings["lovesiteconn"].ConnectionString);
_connection.Open();
SqlCommand cmd = new SqlCommand(strsql, _connection);
SqlDataReader reader = cmd.ExecuteReader();
int nRet = 0;
if (reader.Read()) {
nRet = CommFunc.ParseInt(reader[0].ToString());
}
reader.Close();
_connection.Close();
_connection = null;
return nRet;
}
}
发表于 @ 2007年11月16日 02:24:00 | 评论( loading... ) | 举报| 收藏