以前我们学习的时候都把连接数据库的连接字符串写在一个类中,因为我们的数据库都在自己电脑上。如果更换数据库地址,需要更改这个类,然后重新编译才可以连接到数据库。现在我们需要将连接字符串当道一个文件中,然后程序读取整个文件,更换数据库地址时,只需修改这个文件就可以了。

xml配置文件App.config配置文件在UI层,VS2010会自动生成配置文件。如果没有生成可以手动添加→新建项→应用程序盘配置文件,注意创建的名称必须是系统生出的App.Config,不能修改。

添加好配置文件,在文件中添加连接字符串的节点<connectionStrings>,在该节点下添加节点<add name="连接字符串的名称"  connectionString="连接字符串的内容">。例如:

<?xml version="1.0" encoding="utf-8"?>

<configuration>

<connectionStrings>

<add name="constr" connectionString="Data Source=.; Initial Catalog=MySchool; uid=sa;"/>

</connectionStrings>

</configuration>

访问本机数据库的书写方式还有别的方式,本人最常用的是:server=.;database=myschool;uid=sa;因为学习需要本人没设置密码所以密码不用写。

由于有些SQL语句频繁使用,我们可以把这些SQL字符串提取到一个SqlHelper类里当作一个静态字符串来调用比较方便。SqlHelper类一般在数据访问层创建。

我们要把配置文件里的地址信息读取出来赋值给SqlHelper类,首先要要在数据访问层(DAL层)右键添加引用,切到.NET选项卡下,找到System.Configuration命名空间添加。然后再SqlHelper类中通过using System.Configuration添加命名空间,

再通过ConfigurationManager.ConnectionStrings["constr"].ConnectionString获取连接字符串。例如:public static string constr=ConfigurationManager.ConnectionStrings["constr"].ConnectionString;

………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………

readonly与const的对比:

const能修饰类中的字段或者局部变量,readonly只能修饰类的字段。对于引用类型除了string外,一般不声明位const。如果非要声明为const,那么初始值只能为null。const修饰的常量需要在声明时进行赋值,而readonly常量可以在程序运行时赋值。

readonly MyClass myins=new MyClass();这里readonly不能替换为const因为myClass是引用类型而且new是在程序运行时进行的开辟空间操作,而const赋值需要在程序编译的时候。

readonly MyClass myins=null;这里的readonly能替换为const因为引用类型非要声明为const,那么初始值只能为null。

readonly intp[] constInArray=new int[]{1,2,3};这里的readonly不能替换为const,因为数组是引用类型而且是在程序运行的时候赋值。

void SomeFuncation()

{

const int a=10;

}

这里的const不能替换为readonly因为readonly只能修饰类的字段,不能修饰局部变量,也不能修饰属性等其他类成员。

配置文件App.config的使用以及Readonly与Const的对比的更多相关文章

  1. C#的配置文件App.config使用总结 - 转

    http://blog.csdn.net/celte/article/details/9749389 首先,先说明,我使用的app.config 配置文件的格式如下: <?xml version ...

  2. winform程序读取和改写配置文件App.config元素的值

    winform程序读取和改写配置文件App.config元素的值 2016-05-16 17:49 by newbirth, 2412 阅读, 0 评论, 收藏, 编辑 1 2 3 4 5 6 7 & ...

  3. C#的配置文件App.config使用总结

    应用程序配置文件是标准的 XML 文件,XML 标记和属性是区分大小写的.它是可以按需要更改的,开发人员可以使用配置文件来更改设置,而不必重编译应用程序.配置文件的根节点是configuration. ...

  4. 配置文件——App.config文件读取和修改

    作为普通的xml文件读取的话,首先就要知道怎么寻找文件的路径.我们知道一般配置文件就在跟可执行exe文件在同一目录下,且仅仅在名称后面添加了一个.config 因此,可以用Application.Ex ...

  5. C#中怎样获取默认配置文件App.config中配置的键值对内容

    场景 在新建一个程序后,项目中会有一个默认配置文件App.config 一般会将一些配置文件信息,比如连接数据库的字符串等信息存在此配置文件中. 怎样在代码中获取自己配置的键值对信息. 注: 博客主页 ...

  6. 通过读取配置文件App.config来获取数据库连接字符串

    有两种方式://通过读取配置文件来获取连接字符串 第一种方式: App.config 文件的格式: <?xml version="1.0" encoding="ut ...

  7. C#----操作应用程序配置文件App.config

    对配置文件的一些疑问: 在应用程序的目录下,有两处值得注意的地方,一个是应用程序根目录下的App.config文件,和bin\debug\name.exe.config 或者 bin\Release\ ...

  8. 使用.NET Framework的配置文件app.config

    在一般的项目中,为了使你的代码更加灵活,更方便调整,减少不必要的hard code,我们都在config中添加许多配置信息,一般可以选择.NET自带的配置文件形式app.config或者web项目中的 ...

  9. C#/ASP.NET应用程序配置文件app.config/web.config的增、删、改操作

    原文 http://www.cnblogs.com/codealone/archive/2013/09/22/3332607.html 应用程序配置文件,对于asp.net是 web.config,对 ...

随机推荐

  1. 已禁用对分布式事务管理器(MSDTC)的网络访问。请使用组件服务管理工具启用 DTC 以便在 MSDTC 安全配置中进行网络访问。

    今天写ASP.NET程序,在网页后台的c#代码里写了个事务,事务内部对一张表进行批量插入,对另外一张表进行查询与批量插入. 结果第二张表查询后foreach迭代操作时报错:已禁用对分布式事务管理器(M ...

  2. 答CsdnBlogger问-关于定时和后台服务问题

    本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 前段时间写了不少博客,在问答页面也陆续回答几十个问题,之后Csdn乙同学找到我,说要推荐我参加问答类 ...

  3. 经常在eclipse中导入web项目时,出现转不了项目类型的问题,导入后就是一个java项目。

    1.在eclipse的项目上点右键,刷新项目.2.在项目上点右键,进入属性(properties)3.在左侧列表项目中点击选择“Project Facets”,在右侧选择“Dynamic Web Mo ...

  4. [LeetCode]题解(python):059-Spiral Matrix II

    题目来源 https://leetcode.com/problems/spiral-matrix-ii/ Given an integer n, generate a square matrix fi ...

  5. GitLab使用方法

    注意只有master权限的用户才可以push到主线master分支上(默认受保护)(当一个新版本的app定版之后,才会提交到master分支上,平时不建议使用该分支),developer没有push到 ...

  6. Fiddler-004-配置过滤器之-域名过滤

    前文讲述了通过 Fiddler 进行网络抓包的一个小实例,具体敬请参阅博文: 有些细心的小主可能发现了,我们捕获的 HTTP请求 中有一些请求不是我们需要的,而是一些非必要数据,页面如下图所示:

  7. imx6 MFG TOOL 分析

    之前分析过mfgtool的内容,最近从官网下载,返现新版的mfgtool工具将imx6各种版本的linux/android都使用一个工具进行烧录.所以从新分析一下. 新版与旧版的一个区别是烧写使用的u ...

  8. linux i2c 设备节点读写

    最近需要操作24C02,封装了一下函数方便以后操作. 参考链接: https://my.oschina.net/handawei/blog/68526 http://blog.csdn.net/one ...

  9. robotframework数据驱动框架

    即将更新...............

  10. python_模块

    1. 模块的导入 (1) python中import module时,系统通常在哪些路径下面查找模块? 在以下的路径查找模块:sys.path 如果你模块所在的目录,不在sys.path的目录下,可以 ...