好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

C#中ConnectionStrings和AppSettings的区别

C#中ConnectionStrings和AppSettings的区别

C#中ConnectionStrings和AppSettings的区别
 今天用之前的类库调试程序出现了以下问题    
System.InvalidOperationException: ConnectionString 属性尚未初始化。 在 System.Data.OracleClient.OracleConnection.PermissionDemand() 在 System.Data.OracleClient.OracleConnectionFactory.PermissionDemand(DbConnection outerConnection) 在 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) 在 System.Data.OracleClient.OracleConnection.Open() 在 DBUtility.DbHelperOra.PrepareCommand(OracleCommand cmd, OracleConnection conn, OracleTransaction trans, String cmdText, OracleParameter[] cmdParms) 位置 C:\Documents and Settings\zzw\My Documents\Visual Studio 2005\Projects\webservicetest\DBUtility\DbHelperOra.cs:行号 541 在 DBUtility.DbHelperOra.Query(String SQLString, OracleParameter[] cmdParms) 位置 C:\Documents and Settings\zzw\My Documents\Visual Studio 2005\Projects\webservicetest\DBUtility\DbHelperOra.cs:行号 491 在 Dal.StudentDal.GetModel(String SNO) 位置 C:\Documents and Settings\zzw\My Documents\Visual Studio 2005\Projects\webservicetest\DAL\StudentDal.cs:行号 56 在 Service.CheckSno(String sno) 位置 f:\zzw\Project\WebSite3\App_Code\Service.cs:行号 50 在 Service.SearchCardID(String sno) 位置 f:\zzw\Project\WebSite3\App_Code\Service.cs:行号 32

问题是说我的connectstring属性尚未初始化,一看就知道是数据库的连接上出了问题。找了好久,问题的原因也很简单,
就是把ConnectionStrings和AppSettings混合用了,因为之前的类库中用的是AppSettings来调用的。所以出现这样的问题
也在情理之中。趁机我也正好去了解ConnectionStrings和AppSettings到底有什么区别。
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  >  

 <  add   key  ="ConnectionString"   value  ="Data Source=***;User ID=***;Password=***"  /> 
 

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

在 .NET Framework 2.0中,ConfigurationManager类新增了两个属性AppSettings和ConnectionStrings专门用来获取配置文件AppSettings和ConnectionStrings节的数据,使用方法如下:

 using   System.Configuration; 
  public   partial   class   _Default : System.Web.UI.Page   
{ 
      protected   void  Page_Load( object   sender, EventArgs e) 
    { 
        Label1.Text  = ConfigurationManager. ConnectionStrings [ "  connectionStringsName  "  ].ToString(); 
        Label2.Text  = ConfigurationManager. AppSettings [ "  appSettingsName  "  ].ToString(); 
    } 
} 

<connectionStrings>和<appSettings>区别比较

 <  connectionStrings  >  
 <  add   name  ="SYXTConnectionString"   connectionString  ="Data Source=LEIKE;Initial Catalog=SYXT;User ID=sa;Password=sa"   
providerName  ="System.Data.SqlClient"   />  
 </  connectionStrings  >  <  appSettings  >  
< add key ="connectionstring1" value ="data source=192.168.123.201;initial catalog=webmedlink;persist security info=False;user id=sa;password=KSDChagd2004;packet size=4096" > </ add >

 

 

分类:  学习笔记

标签:  C#

作者: Leo_wl

    

出处: http://www.cnblogs.com/Leo_wl/

    

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

版权信息

查看更多关于C#中ConnectionStrings和AppSettings的区别的详细内容...

  阅读:36次