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>

<connectionStrings> <appSettings> 读取方法的更多相关文章

  1. JAVA文件的两种读取方法和三种写入方法

    在使用java对文件进行读写操作时,有多种方法可以使用,但不同的方法有不同的性能. 此文对常用的读写方法进行了整理,以备不时之需. 1.文件的读取 主要介绍两种常用的读取方法.按行读取和按字符块读取. ...

  2. python之xml 文件的读取方法

    ''' xml 文件的读取方法 ''' #!/usr/bin/env python # -*- coding: utf- -*- import xml.etree.ElementTree as ET ...

  3. 05、解剖CEL文件各版本格式和读取方法(非R语言)

    相比DAT文件,网络上更支持CEL级别的文件.CEL已经把DAT图像转换成数据了,而且CEL比DAT所占空间小得多.介绍一下CEL文件的格式,CEL文件有文本文件(TextCelFile,版本3).B ...

  4. Web.config中appSettings节点值两种读取方法

        <appSettings>    <add key="ClientPort" value="5252"/>   <add ...

  5. [XAML]类似WPF绑定的Binding的读取方法

    在WPF的XAML里,依赖属性可以使用基于BindingBase之类的MarkupExtensin 读取XAML时,会自动的把该BindingBase转换为BindingExpressionBase ...

  6. netcore web.config ConnectionStrings AppSettings

    new ConfigurationBuilder().Build().GetSection("ConnectionStrings") new ConfigurationBuilde ...

  7. 详解xml文件描述,读取方法以及将对象存放到xml文档中,并按照指定的特征寻找的方案

    主要的几个功能: 1.完成多条Emp信息的XML描述2.读取XML文档解析Emp信息3.将Emp(存放在List中)对象转换为XML文档4.在XML文档中查找指定特征的Emp信息 dom4j,jaxe ...

  8. 大文件读取方法(C#)

    之前都是用StreamReader.ReadLine方法逐行读取文件,自从.NET4有了File.ReadLines这一利器,就再也不用为大文件发愁了. File.ReadLines在整个文件读取到内 ...

  9. Keil C51对同一端口的连续读取方法

    C语言是当前举世公认的高效简洁而又非常贴近硬件的编程语言之一.将C语言向单片机MCS-51上的移植始于2O世纪8O年代的中后期,经过近1O年的发展,C语言克服了产生代码过长.运行速度较慢的缺点,并且由 ...

随机推荐

  1. jquery 抽奖示例

    jquery 抽奖示例: <%@ page language="java" import="java.util.*" pageEncoding=" ...

  2. Screen Orientation for Windows Phone

    http://msdn.microsoft.com/en-us/library/windows/apps/jj207002(v=vs.105).aspx

  3. java文件下载,上传,解压方法

    1.文件下载(亲测可用) private static final int BUFFER = 2 * 1024;// 缓冲区大小(2k)private boolean isSuccess = true ...

  4. 利用activeX控件在网页里自动登录WIN2003远程桌面并实时控制

    首先要自己配置并打开受控端的WEB远程桌面服务,这个在“添加/删除windows组件”里有,我只在windows 2003 server里试过,没试过XP.下面我们在客户端安装微软提供的远程桌面客户端 ...

  5. WM_COPYDATA进程间通信方案

    连续在两个公司使用WM_COPYDATA实现进程间通信了,整理一下 具体步骤: 一.   进程A通过ShellExecute启动进程B, 将用于通信的窗口句柄hWndA(已强转为int值)通过命令行参 ...

  6. URL地址中使用中文作为的参数【转】

    原文:http://blog.csdn.net/blueheart20/article/details/43766713 引言: 在Restful类的服务设计中,经常会碰到需要在URL地址中使用中文作 ...

  7. 关于SequeezeNet中的Fire Module

    在论文<SQUEEZENET: ALEXNET-LEVEL ACCURACY WITH 50X FEWER PARAMETERS AND <0.5MB MODEL SIZE>中,作者 ...

  8. 【Android测试】Android截图的深水区

    ◆版权声明:本文出自胖喵~的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/6113059.html 需求 这两天遇到这样一个事情,因为某 ...

  9. Hive&Hbase

    1. 两者分别是什么? Apache Hive是一个构建在Hadoop基础设施之上的数据仓库.通过Hive可以使用HQL语言查询存放在HDFS上的数据.HQL是一种类SQL语言,这种语言最终被转化为M ...

  10. cloudera learning4:Hadoop集群规划

    涉及到一些关于硬件的东西,我也不是很懂,记录下来有待以后学习. Hadoop集群一般都是由小到大,刚开始可能只有4到6个节点,随着存储数据的增加,计算量的增大,内存需求的增加,集群慢慢变大. 比如按照 ...