C#中配置文件的使用

2023-05-16

       

1. 向项目添加app.config文件:
右击项目名称,选择“添加”→“添加新建项”,在出现的“添加新项”对话框中,选择“添加应用程序配置文件”;如果项目以前没有配置文件,则默认的文件名称为“app.config”,单击“确定”。出现在设计器视图中的app.config文件为:

view plain copy to clipboard print ?
  1. <?xmlversion="1.0"encoding="utf-8" ?>   
  2. <configuration>   
  3. </configuration>  


在项目进行编译后,在bin\Debuge文件下,将出现两个配置文件(以本项目为例),一个名为“JxcManagement.EXE.config”,另一个名为“JxcManagement.vshost.exe.config”。第一个文件为项目实际使用的配置文件,在程序运行中所做的更改都将被保存于此;第二个文件为原代码“app.config”的同步文件,在程序运行中不会发生更改。
2.  connectionStrings配置节:
请注意:如果您的SQL版本为2005 Express版,则默认安装时SQL服务器实例名为localhost\SQLExpress,须更改以下实例中“Data Source=localhost;”一句为“Data Source=localhost\SQLExpress;”,在等于号的两边不要加上空格。

view plain copy to clipboard print ?
  1. <!--数据库连接串-->   
  2.      <connectionStrings>   
  3.          <clear />   
  4.          <addname="conJxcBook"  
  5.               connectionString="Data Source=localhost;Initial Catalog=jxcbook;User                                   ID=sa;password=********"  
  6.               providerName="System.Data.SqlClient" />   
  7.      </connectionStrings>  


3. appSettings配置节:
appSettings配置节为整个程序的配置,如果是对当前用户的配置,请使用userSettings配置节,其格式与以下配置书写要求一样。

view plain copy to clipboard print ?
  1. <!--进销存管理系统初始化需要的参数-->   
  2.      <appSettings>   
  3.          <clear />   
  4.          <add key="userName" value="" />   
  5.          <add key="password" value="" />   
  6.          <add key="Department" value="" />   
  7.          <add key="returnValue" value="" />   
  8.          <add key="pwdPattern" value="" />   
  9.          <add key="userPattern" value="" />   
  10. </appSettings>  


4.读取与更新app.config
对于app.config文件的读写,参照了网络文章:http://www.codeproject.com/csharp/ SystemConfiguration.asp标题为“Read/Write App.Config File with .NET 2.0”一文。
请注意:要使用以下的代码访问app.config文件,除添加引用System.Configuration外,还必须在项目添加对System.Configuration.dll的引用。
4.1 读取connectionStrings配置节

view plain copy to clipboard print ?
  1. ///<summary>   
  2. ///依据连接串名字connectionName返回数据连接字符串   
  3. ///</summary>   
  4. ///<param name="connectionName"></param>   
  5. ///<returns></returns>   
  6. private static string GetConnectionStringsConfig(string connectionName)   
  7. {   
  8. string connectionString =    
  9.         ConfigurationManager.ConnectionStrings[connectionName].ConnectionString.ToString();   
  10.     Console.WriteLine(connectionString);   
  11.     return connectionString;   
  12. }  


4.2 更新connectionStrings配置节

view plain copy to clipboard print ?
  1. ///<summary>   
  2. ///更新连接字符串   
  3. ///</summary>   
  4. ///<param name="newName">连接字符串名称</param>   
  5. ///<param name="newConString">连接字符串内容</param>   
  6. ///<param name="newProviderName">数据提供程序名称</param>   
  7. private static void UpdateConnectionStringsConfig(string newName,   
  8.     string newConString,   
  9.     string newProviderName)   
  10. {   
  11.     bool isModified = false;    //记录该连接串是否已经存在   
  12.     //如果要更改的连接串已经存在   
  13.     if (ConfigurationManager.ConnectionStrings[newName] != null)   
  14.     {   
  15.         isModified = true;   
  16.     }   
  17.     //新建一个连接字符串实例   
  18.     ConnectionStringSettings mySettings =    
  19.         new ConnectionStringSettings(newName, newConString, newProviderName);   
  20.     // 打开可执行的配置文件*.exe.config   
  21.     Configuration config =    
  22.         ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);   
  23.     // 如果连接串已存在,首先删除它   
  24.     if (isModified)   
  25.     {   
  26.         config.ConnectionStrings.ConnectionStrings.Remove(newName);   
  27.     }   
  28.     // 将新的连接串添加到配置文件中.   
  29.     config.ConnectionStrings.ConnectionStrings.Add(mySettings);   
  30.     // 保存对配置文件所作的更改   
  31.     config.Save(ConfigurationSaveMode.Modified);   
  32.     // 强制重新载入配置文件的ConnectionStrings配置节   
  33.     ConfigurationManager.RefreshSection("ConnectionStrings");   
  34. }  


4.3 读取appStrings配置节

view plain copy to clipboard print ?
  1. ///<summary>   
  2. ///返回*.exe.config文件中appSettings配置节的value项   
  3. ///</summary>   
  4. ///<param name="strKey"></param>   
  5. ///<returns></returns>   
  6. private static string GetAppConfig(string strKey)   
  7. {   
  8.     foreach (string key in ConfigurationManager.AppSettings)   
  9.     {   
  10.         if (key == strKey)   
  11.         {   
  12.             return ConfigurationManager.AppSettings[strKey];   
  13.         }   
  14.     }   
  15.     return null;   
  16. }  


4.4 更新connectionStrings配置节

view plain copy to clipboard print ?
  1. ///<summary>   
  2. ///在*.exe.config文件中appSettings配置节增加一对键、值对   
  3. ///</summary>   
  4. ///<param name="newKey"></param>   
  5. ///<param name="newValue"></param>   
  6. private static void UpdateAppConfig(string newKey, string newValue)   
  7. {   
  8.     bool isModified = false;       
  9.     foreach (string key in ConfigurationManager.AppSettings)   
  10.     {   
  11.        if(key==newKey)   
  12.         {       
  13.             isModified = true;   
  14.         }   
  15.     }   
  16.     
  17.     // Open App.Config of executable   
  18.     Configuration config =    
  19.         ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);   
  20.     // You need to remove the old settings object before you can replace it   
  21.     if (isModified)   
  22.     {   
  23.         config.AppSettings.Settings.Remove(newKey);   
  24.     }       
  25.     // Add an Application Setting.   
  26.     config.AppSettings.Settings.Add(newKey,newValue);      
  27.     // Save the changes in App.config file.   
  28.     config.Save(ConfigurationSaveMode.Modified);   
  29.     // Force a reload of a changed section.   
  30.     ConfigurationManager.RefreshSection("appSettings");   
  31. }  
  32. ———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

    多层次configSections

    源地址

    http://gb2013.blog.163.com/blog/static/21735301201021253713453/

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <configSections>
        <section name="student" type="System.Configuration.DictionarySectionHandler"/>
      </configSections>
      <student>
        <add key="name" value="http://www.cnblogs.com/i80386/archive/2011/10/27/amily"/>
        <add key="age" value="http://www.cnblogs.com/i80386/archive/2011/10/27/15"/>
        <add key="sex" value="http://www.cnblogs.com/i80386/archive/2011/10/27/female"/>
      </student>
    </configuration>

    注意事项:configSections 相当于定义变量,必须放在configuration


                IDictionary istudent = (IDictionary)ConfigurationManager.GetSection("student");
                string[] keys=new string[istudent.Keys.Count];
                string[] values = new string[istudent.Keys.Count];

                istudent.Keys.CopyTo(keys,0);
                istudent.Values.CopyTo(values, 0);

                foreach (var key in keys)
                {
                    Console.WriteLine(key);
                }
                foreach (var value in values)
                {
                    Console.WriteLine(value);
                }

                foreach (var key in istudent.Keys)
                {
                    Console.WriteLine("{0}:{1}", key, istudent[key]);
                }

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C#中配置文件的使用 的相关文章

  • c#-接口

    c 中的接口中必须是未实现的方法 xff0c 例如属性 xff0c 事件 xff0c 索引器 xff0c 一般函数等 除此之外不能有其他的成员 xff0c 类可以继承两个或两个以上的接口 xff0c 派生类中必须实现接口中的所有方法
  • C# SerialPort 读写三菱FX系列PLC

    1 xff1a 串口初始化 com 61 new SerialPort 34 COM3 34 9600 Parity Even 7 StopBits One 2 xff1a 打开关闭串口 if com IsOpen com Close co
  • c++中用new和不用new创建对象的本质区别

    1 xff1a 作用域不同 不用new xff1a 作用域限制在定义类对象的方法中 xff0c 当方法结束时 xff0c 类对象也被系统释放了 xff0c xff08 安全不会造成内存系统泄漏 xff09 用new xff1a 创建的是指向
  • ubuntu系统通过ifconfig查看eth0只有ipv6没有ipv4的解决方案

    只有inet6 addr 配置eth0 3 重新启动sudo etc init d networking restart IP地址出来了 看起来就正常 4 看其他资料 xff0c linux 43 QT4 0 xff0c 在这个开发板上的l
  • Action<T> 无参数委托详解

    C 委托Action Action lt T gt Func lt T gt Predicate lt T gt CLR环境中给我们内置了几个常用委托Action Action lt T gt Func lt T gt Predicate
  • 在C++里,有两种方法创建对象:

    方法一 xff1a ClassName object param 这样就声明了一个ClassName类型的object对象 xff0c C 43 43 会为它分配足够的存放对象所有成员的存储空间 注意 xff1a 为节省存储空间 xff0c
  • C++中引用(&)的用法和应用实例

    对于习惯使用C进行开发的朋友们 xff0c 在看到c 43 43 中出现的 amp 符号 xff0c 可能会犯迷糊 xff0c 因为在C语言中这个符号表示了取地址符 xff0c 但是在C 43 43 中它却有着不同的用途 xff0c 掌握C
  • C++中重载与重写函数区别及虚函数(转载)

    C 43 43 中重载与重写函数区别及虚函数 C 43 43 中的虚函数 virtual function 1 简介 虚函数是C 43 43 中用于实现多态 polymorphism 的机制 核心理念就是通过基类访问派生类定义的函数 假设我
  • c#中的静态构造函数

    静态构造函数是C 的一个新特性 xff0c 其实好像很少用到 不过当我们想初始化一些静态变量的时候就需要用到它了 这个构造函数是属于类的 xff0c 而不是属于哪里实例的 xff0c 就是说这个构造函数只会被执行一次 也就是在创建第一个实例
  • C++中重写与覆写(虚函数virtual)的区别

    本文章已收录于 xff1a 虚函数的情况下调用成员函数时调用的是指向对象的所属类的成员函数例子中为apple class fruit public void func printf 34 fruit n 34 virtual void vf
  • duilib入门问题集

    引入duilib时 请确保引入头文件开始时先引入COMUTIL H头文件 include 34 COMUTIL H 34 include 34 UIlib h 34 duilib基本程序结构 在stdafx h文件中加入 cpp view
  • C#中常用的几种读取XML文件的方法

    XML文件是一种常用的文件格式 xff0c 例如WinForm里面的app config以及Web程序中的web config文件 xff0c 还有许多重要的场所都有它的身影 Xml是Internet环境中跨平台的 xff0c 依赖于内容的
  • C++(1) 指针 new 和delete

    1 概念 new typeName pointer name 61 new typeName delete delete pointer name 注意 xff1a 1 new之后要判断 xff0c 指针是否为NULL xff0c 内存被耗
  • C++的new

    C 43 43 中的new其实是一个很糊弄人的术语 xff0c 它有两种不同的含义 xff0c new运算符 xff08 new operator xff09 和new函数 xff08 operator new xff09 xff0c 值得
  • s32ds

    S32DS使用复位窗口的方式还原 xff1a 在S32DS菜单栏 Windows Perspective Reset Perspective 添加组件 xff0c 自动生成代码 xff1a
  • 在C#中使用SerialPort类实现串口通信 遇到多线程问题

    在C 中使用SerialPort类实现串口通信 遇到多线程问题 在C 中使用SerialPort类实现串口通信 2009年11月01日 星期日 10 03 在 NET work 2 0中提供了SerialPort类 xff0c 该类主要实现
  • [C#]委托和事件(详细讲解)

    引言 委托 和 事件在 Net Framework中的应用非常广泛 xff0c 然而 xff0c 较好地理解委托和事件对很多接触C 时间不长的人来说并不容易 它们就像是一道槛儿 xff0c 过了这个槛的人 xff0c 觉得真是太容易了 xf
  • 连接excel执行Insert Into语句出现“操作必须使用一个可更新的查询”的解决

    C 使用oledb连接excel执行Insert Into语句出现 操作必须使用一个可更新的查询 的解决办法 我发生错误时的环境 xff1a Windows 7 xff0c Framework 4 0 xff0c Microsoft Off
  • 操作excel的一些方法

    更改方法 xff1a public void UpdateExcelFile string filePath string prjId List lt string gt updateColNames List lt string gt c

随机推荐

  • C#中如何创建文件夹

    C 中对文件夹操作需要用到Directory Class 其中提供了创建 删除 移动 枚举等静态方法 该类不能被继承 以下代码实现了创建文件夹 1 2 3 4 if Directory Exists sPath
  • C#获取当前程序运行路径的方法集合

    获取当前进程的完整路径 xff0c 包含文件名 进程名 string str 61 this GetType Assembly Location result X xxx xxx xxx exe exe文件所在的目录 43 exe文件名 获
  • 怎么将excel数据导入到datagridview中

    本人小白 xff0c 想要实现EXCEL文件中的数据导入到datagridview中 xff0c EXCEL中的数据是多行多列 xff0c 行数和列数不确定 xff0c 如何实现导入到datagridview中显示 xff0c 具体的界面如
  • 总结了C#中string.format用法。分享给大家供大家参考。具体分析如下:

    String Format 方法的几种定义 xff1a String Format String Object 将指定的 String 中的格式项替换为指定的 Object 实例的值的文本等效项 String Format String O
  • c#中out、ref和params的用法与区别

    ref和out都对函数参数采用引用传递形式 不管是值类型参数还是引用类型参数 xff0c 并且定义函数和调用函数时都必须显示生命该参数为 ref out形式 两者都可以使函数传回多个结果 两者区别 xff1a 两种参数类型的设计思想不同 x
  • C#代码创建Xml文件

    扩展标记语言XML xff08 eXtensible Markup Language xff09 xff0c 是由W3C组织制定的 做为用于替代HTML语言的一种新型的标记语言 xff0c XML内部有着很多基本标准 xff0c XML就是
  • tftp使用

    tftp服务器路径 xff1a tftp使用命令 xff1a root 64 iTOP 4412 tftp g l module test ko 169 254 231 181 3356 761790 dm96 TxRound 0 for
  • 获取某一扩展名的文件集合

    获取某一扩展名的文件集合 lt summary gt lt param name 61 34 dictoryName 34 gt 目录名 lt param gt lt param name 61 34 fiterName 34 gt 扩展名
  • 使用XmlTextWriter生成XML文件的方法

    使用XmlTextWriter生成XML文件的方法 项目兼容需要生成一系列的xml文件 xff0c 总结了下XML文件的生成基本方式 项目兼容需要生成一系列的xml文件 xff0c 总结了下XML文件的生成基本方式 XmlTextWrite
  • datatable数据类型方法

    本文章已收录于 xff1a 43 Datatable数据类型介绍 简介方法介绍 用法一声明一个datatable类型用法二合并两个结构相同的datatable用法三datatable中数据的计算用法四两种遍历datatable的方法 Dat
  • C#字符串常见操作总结详解

    C 字符串常见操作总结详解 本篇文章是对C 中字符串的常见操作进行了详细的总结介绍 xff0c 需要的朋友参考下 xff08 1 xff09 取字符串长度 lt string gt Length xff08 2 xff09 字符串转为比特码
  • c#读取string类型的xml格式的字符串

    string str 61 lt resultInfo code 61 34 202 34 message 61 34 原密码输入不正确 xff01 34 gt XmlDocument xmlDoc 61 new XmlDocument x
  • C# 截取字符串

    本文章已收录于 xff1a str为要进行截取的字符串 start是第一个关键字 字符串 last是第二个关键字 字符串 public string GetContent string str string start string las
  • C#中文件及文件夾的遍历

    操作文件常用的类有 xff1a File 实用类 xff0c 提供许多静态方法 xff0c 用于移动 删除 和复制文件 Directory 实用类 xff0c 提供许多静态方法 xff0c 用于移动 删除和复制目录 Path 实用类 xff
  • C# 简单的XML读取修改写入

    XML概念 Root XML根节点 xff0c 只能且必须有一个 以上为LinkLibrary Element 节点元素 如Link Attribute 节点属性 如Cat Url Desc Content 内容 xff08 非空白文本 C
  • C# XML 添加,修改,删除Xml节点

    添加xml节点 private void AddXml string image string title XmlDocument xmlDoc 61 new XmlDocument xmlDoc Load Server MapPath 3
  • 使用Activator.CreateInstance完善简单工厂

    前几天在项目中看到别人的工厂类使用Activator CreateInstance 之前用简单工厂都是用switch case xff0c 之前没有用过便查了查资料 xff0c 正是这个方法 43 反射简化了工厂模式 xff0c 在需求增加
  • can协议的数据帧格式

    1 帧起始和帧结束 2 仲裁段 xff1a 3 控制段 xff1a 4 数据段 5 CRC段 6 ACK段
  • C#各种配置文件使用,操作方法总结

    配置文件操作 配置文件一般分为内置配置文和用户自定义配置文件 内置配置文件包括app config web config Settings settings等等 用户自定义配置文件一般是将配置信息放到XML文件或注册表中 xff0c 配置信
  • C#中配置文件的使用

    1 向项目添加app config文件 xff1a 右击项目名称 xff0c 选择 添加 添加新建项 xff0c 在出现的 添加新项 对话框中 xff0c 选择 添加应用程序配置文件 xff1b 如果项目以前没有配置文件 xff0c 则默认