ASP.net2.0中数据库连接字符串

来源:互联网 发布:百度云管家软件 编辑:程序博客网 时间:2024/04/30 07:15

ASP.net2.0中配置 数据库连接字符串
Asp.net 2.0中通常可以将数据库连接字符串保存于.aspx页面中,但为了保持一致性及提高效率可以将ConnectionString属性保存于Web.config中,如下所示:
...
<connectionStrings>
    <add name="NorthwindConnectionString" connectionString="Data Source=JYUE/SQLEXPRESS;Initial Catalog=Northwind;Integrated Security=True"
            providerName="System.Data.SqlClient" />
</connectionStrings>
...

name标识为字符串名称
connectionString为具体连接字符串
providerName为数据提供程序,本例为SQL数据库

配置完毕后可以以.aspx页面中如下形式引用连接字符串
<%$ ConnectionStrings:NorthwindConnectionString %>

上面的方法虽然简便,但安全性不高,ASP.net2.0提供了简便的加密方法,即使用aspnet_iis.exe命令,该命令位置如下:
C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727
注意,具体情况视系统位置及版本号有所差异

在命令模式下进入该目录即可运行,完整命令为:
aspnet_iis -pef "connectionStrings" "Web.cofing绝对路径(注:不需要输入web.config)"

如果正常会提示“成功”,此时打开Web.config会发现字符串已加密

解密命令为:
aspnet_iis -pdf "connectionStrings" "Web.cofing绝对路径(注:不需要输入web.config)"

注意的是加密、解密必须在一台机器上完成。


通过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了,呵呵。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 玩lol延迟高怎么办但网速没问题 中维世纪监控密码忘记了怎么办 原店主营业执照不注销怎么办新的 苹果手机铃声调到最大还小怎么办 投标时措施费忘记套价了怎么办 美团商家更改手机号和银行卡怎么办 淘宝买的衣服颜色发错了怎么办 在淘宝买的衣服颜色不一样怎么办 新买的木柜气味好重怎么办 淘宝店铺动态评分一直很低怎么办? 刚生下来的宝宝睡觉不吃奶怎么办 宝宝吐奶咳嗽了可能被呛到怎么办 床下面的液压支架支撑不了了怎么办 沙发的海绵垫坐着感觉太硬怎么办 修公路占地补偿盖房子房产证怎么办 哺乳期乳房有硬块挤不出来怎么办 老公投的公司倒闭了钱怎么办 小丑鱼老在缸上边游不下去怎么办 海缸养珊瑚又想养蝴蝶鱼怎么办 被几个月的小狗咬了怎么办 木本植物继代长出大量愈伤怎么办 钱兜树叶子发黄掉叶怎么办 手机qq群200人满了怎么办 支票被背书人的章盖浅了怎么办 没病装病的心理病患者怎么办 20多岁被骗40多万怎么办 一个学生上课爱捣乱班级课堂怎么办 军训的时候大姨妈来了怎么办 笔记本连接无线网说链接限制怎么办 12306密码和邮箱都忘了怎么办 烦恼都是自找的新书散页了怎么办 白色衣服被红色衣服染了怎么办 手机微信里面不能拍手功怎么办 肇事逃逸轻伤且对方不私了怎么办 数学差怎么办脑子不好啊数学学不老 手机号丢失微信密码丢失怎么办找回 悦借钱输入五次密码被锁怎么办 生源地助学贷款密码忘了怎么办 生源地助学贷款登录密码忘了怎么办 助学贷款支付宝密码忘了怎么办 微信密码忘记了手机号也换了怎么办