下面讲述在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 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;
}
首先,在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,代码如下:
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;
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 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();
{
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());
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了,呵呵。
}
对于刚刚开始熟悉 VS2005 的朋友来说,很多细节的东西要与03区别,当然,查一下SDK很容易找到异同和解决方法,本文小例针对在05中初次配置web.config遇到的小麻烦做一总结,详细的 configuration 操作可以参考SDK了,呵呵。
本文转自 august 51CTO博客,原文链接:http://blog.51cto.com/august/6971,如需转载请自行联系原作者