两种获取connectionString的方式

两种获取connectionString的方式

1.

public static string connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;

<connectionStrings>

<add name="ConnectionString" connectionString="Data Source=localhost;Persist Security Info=True;User ID=***;Password=***;Unicode=True"

providerName="System.Data.OracleClient" />

</connectionStrings>

2.

public static string connectionString = ConfigurationSettings.AppSettings["ConnectionString"]; 

<add key="ConnectionString" value="server=localhost;database=***;uid=sa;pwd=***"></add>

添加位置见下

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <appSettings><!--2.--><add key="ConnectionString" value="***"></add></appSettings>

<connectionStrings/><!--1.-->
    
<system.web>
        
<!-- 
            设置 compilation debug="true" 可将调试符号插入
            已编译的页面中。但由于这会 
            影响性能,因此只在开发过程中将此值 
            设置为 true。
        -->
        <compilation debug="false"></compilation>
        <!--
            通过 <authentication> 节可以配置 ASP.NET 用来 
            识别进入用户的
            安全身份验证模式。 
        -->
        <authentication mode="Windows" />
        <!--
            如果在执行请求的过程中出现未处理的错误,
            则通过 <customErrors> 节可以配置相应的处理步骤。具体说来,
            开发人员通过该节可以配置
            要显示的 html 错误页
            以代替错误堆栈跟踪。
        <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
            <error statusCode="403" redirect="NoAccess.htm" />
            <error statusCode="404" redirect="FileNotFound.htm" />
        </customErrors>
        -->
    </system.web>
</configuration>

 数据库连接是否成功

using System.Data;
using Oracle.DataAccess.Client;  //注意添加Oracle的引用  ;SqlServer自带

DataSet dataSet = new DataSet();
List<ZHInfo> listzh = new List<ZHInfo>();

string sql = "SELECT CODE,NAME,PHONE_NUMBER FROM ZHXX WHERE 1=1 AND ROWNUM<10 ";
using (OracleConnection oracleConnection = new OracleConnection(connectionString))
{
  oracleConnection.Open();
  OracleCommand selectCommand = new OracleCommand(sql, oracleConnection);
  OracleDataAdapter oracleDataAdapter = new OracleDataAdapter(selectCommand);   oracleDataAdapter.Fill(dataSet);
}
if (dataSet.Tables.Count > && dataSet.Tables[] != null && dataSet.Tables[].Rows.Count > )
{
//连接成功且返回数据
  foreach (DataRow dr in dataSet.Tables[].Rows)
  {
    listzh.Add(new ZHInfo { Code = dr["Code"].ToString(), Name = dr["Name"].ToString(), PublicNumber = dr["Phone_Number"].ToString() });
  }
}
public class ZHInfo
{
public string Code { get; set; }
public string Name { get; set; }
public string PublicNumber { get; set; }
}

参考:grpideas的专栏  两种获取connectionString的方式

AppSettings和ConnectionStrings的使用。

AppSettings是ASP.NET1.1时期用的,在.NET Framework 2.0中,新增了ConnectionStrings.

1.ConnectionStrings的使用

<connectionStrings>
<add name="ConnectionStringName" connectionString="Data Source=服务器名;Initial Catalog=数据库名;User ID=用户;Password=密码"
providerName="System.Data.SqlClient" />
</connectionStrings>

或者:

<connectionStrings>
<add name="ConnectionStringName" connectionString="sever=服务器名;database=数据库名;User ID=用户;Password=密码"
providerName="System.Data.SqlClient" />
</connectionStrings>

在页面还可以这样引用<%$ ConnectionString:Name%>.

2.<appSettings>的使用

<add key="connectionstringName" value="data source=服务器名或IP;initial catalog=数据库名;persist security info=False;user id=用户;password=密码;packet size=4096">
</add>

3.区别

1)AppSettings 是在2003中常用的,ConnectionStrins是2005中常用的. 
2)使用ConnectionString的好处: 
第一:可将连接字符串加密,使用MS的一个加密工具即可。 
第二:可直接邦定的数据源控件,而不必写代码读出来再赋值给控件。 
第三:可方便的更换数据库平台,如换为Oracle数据库,只需修改providerName。 
3)写在 <appSettings >中用System.Configuration.ConfigurationManager.AppSettings["name"]检索值。 
写在 <ConnectionStrings>中用System.Configuration.ConfigurationManager.ConnectionStrings["name"]检索值。

4.测试

在VS2005中新建一个网站,然后再defaul页面中加入如下代码

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 _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
labConn.Text = ConfigurationManager.ConnectionStrings["SiteSqlServer"].ToString();
labApp.Text = ConfigurationManager.AppSettings["SiteSqlServer"].ToString();
}
}

而web.config的代码如下:

<?xml version="1.0"?>
<!--
注意: 除了手动编辑此文件以外,您还可以使用
Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的
“网站”->“Asp<a href="http://lib.csdn.net/base/dotnet" class='replace_word' title=".NET知识库" target='_blank' style='color:#df3434; font-weight:bold;'>.NET</a> 配置”选项。
设置和注释的完整列表在
machine.config.comments 中,该文件通常位于
/Windows/Microsoft.Net/Framework/v2.x/Config 中
-->
<configuration>
<connectionStrings>
<add name="SiteSqlServer" connectionString="Data Source=XUWEI/SQLEXPRESS;Initial Catalog=store;User ID=dnndemo;Password=dnndemo" providerName="System.Data.SqlClient" />
</connectionStrings> <appSettings>
<add key="SiteSqlServer" value="Data Source=XUWEI/SQLEXPRESS;Initial Catalog=store;User ID=dnndemo;Password=dnndemo" />
</appSettings> <system.web>
<!--
设置 compilation debug="true" 将调试符号插入
已编译的页面中。但由于这会
影响性能,因此只在开发过程中将此值
设置为 true。
-->
<compilation debug="true"/>
<!--
通过 <authentication> 节可以配置 ASP.NET 使用的
安全身份验证模式,
以标识传入的用户。
-->
<authentication mode="Windows"/>
<!--
如果在执行请求的过程中出现未处理的错误,
则通过 <customErrors> 节可以配置相应的处理步骤。具体说来,
开发人员通过该节可以配置
要显示的 html 错误页
以代替错误堆栈跟踪。 <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
-->
</system.web>
</configuration>

当然前提是在编辑页面中添加了两个lable,分别为labConn和labApp。

读取Web.Config文件连接字符串
string conString = ConfigurationManager.ConnectionStrings["SQLCONNECTIONSTRING"].ConnectionString;
上一篇:go get golang.org被墙问题解决


下一篇:Android学习基础之onSaveInstanceState和onRestoreInstanceState触发的时机