ASP.NET 例程完全代码版(5)——通过web.config配置数据库连接池

下面讲述在VS2005中如何使用web.config配置文件,进行数据库的连接操作,并启用SQL Server数据库的连接池,相信对于已经熟悉VS2003的、刚进入05的环境的朋友会有些帮助。
    首先,在05中,默认情况下,并没有自动为应用程序生成web.config,当第一次运行应用程序的时候,会出现Debuging Not Enabled的提示,点击OK按钮,会为应用程序生成一个web.config配置文件。在<configuration>元素中,已经有了如下两个节点元素:
 <appSettings/>
 <connectionStrings/>
03中,数据库的连接配置是在<appSettings/>中通过add key=" connStr " value = " "来指定的;05中,"connectionStrings 元素为 ASP.NET 应用程序和 ASP.NET 功能指定数据库连接字符串(名称/值对的形式)的集合。在以前的 ASP.NET 版本中,连接字符串存储在 appSettings 中。在 ASP.NET 2.0 中,如会话、成员资格、个性化设置和角色管理器等功能均依赖于存储在 connectionStrings 元素中的连接字符串。您还可以使用 connectionStrings 元素来存储您自己的应用程序的连接字符串。"——SDK。
可以将<connectionStrings/>用下面的代码替换:
 <connectionStrings>
    <add 
      name="CONNSTRING"
      connectionString="data source =localhost;uid =sa;pwd=;database=Book;pooling=true"/>  //注意:pooling也可以在后面通过代码指定
  </connectionStrings>
应用程序中这样读取即可:
    private readonly string SQLCONNECTIONSTRING = ConfigurationManager.ConnectionStrings["CONNSTRING"].ConnectionString;
下面是测试的例子,当然基本的ADO.NET连接数据库的知识要知道。
建立一个DbPooling.aspx,代码如下:
using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class DbPooling : System.Web.UI.Page
{
    private readonly string SQLCONNECTIONSTRING = ConfigurationManager.ConnectionStrings["CONNSTRING"].ConnectionString;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            ConnectionObject();
            DataSet ds = null;
            for (int i = 0; i < 1000; i++)
            {
                ds = GetCustomers(true);    //true——配置连接池
            }
            GridView1.DataSource = ds;      //03中的DataGrid现在是GridView
            GridView1.DataBind();
        }
    }
    
    private DataSet GetCustomers(bool nStartPooling)
    {
        string connStr = SQLCONNECTIONSTRING + "Pooling=" + nStartPooling.ToString();   //通过传递的bool指定是否配置连接池
        Label1.Text = connStr;
        SqlConnection conn = new SqlConnection(connStr);
        string cmdText = "SELECT Top 10 * FROM Book";
        SqlDataAdapter da = new SqlDataAdapter(cmdText, conn);
        conn.Open();
        DataSet ds = new DataSet();
        da.Fill(ds);
        conn.Close();
        return ds;
    }
    private void ConnectionObject()
    {
        SqlConnection conn = new SqlConnection(SQLCONNECTIONSTRING);
        string cmdText = "SELECT Count(*) as BookCount FROM Book";
        SqlCommand comm = new SqlCommand(cmdText, conn);
        conn.Open();
        int result = (int)comm.ExecuteScalar();
        Response.Write("Book表的记录数为:" + result.ToString());
        Response.Write("<br>SQL Server数据库的连接状态为:" + conn.State.ToString());
        Response.Write("<br>SQL Server数据库连接的通信包的大小为:" + conn.PacketSize.ToString());
        Response.Write("<br>SQL Server数据库连接的数据库为:" + conn.Database.ToString());
        Response.Write("<br>SQL Server数据库连接的工作站点:" + conn.WorkstationId.ToString());
        conn.Close();
        Response.Write("<br>SQL Server数据库的连接状态:" + conn.State.ToString());
    }
}
      对于刚刚开始熟悉 VS2005 的朋友来说,很多细节的东西要与03区别,当然,查一下SDK很容易找到异同和解决方法,本文小例针对在05中初次配置web.config遇到的小麻烦做一总结,详细的 configuration 操作可以参考SDK了,呵呵。


本文转自 august 51CTO博客,原文链接:http://blog.51cto.com/august/6971,如需转载请自行联系原作者
上一篇:android调用系统拍照程序和从图库选取图片,返回后调用系统裁剪工具


下一篇:GNU make manual 翻译( 九十七)