c# 自定义应用程序配置文件(app.config)

1. 向项目添加app.config文件:

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

<?xmlversion=”1.0″encoding=”utf-8″ ?>

<configuration>

</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;”,在等于号的两边不要加上空格。
 


<!–数据库连接串–>

<connectionStrings>

<clear />

<addname=”conJxcBook”

connectionString=”Data Source=localhost;Initial Catalog=jxcbook;User ID=sa;password=********”

providerName=”System.Data.SqlClient” />

</connectionStrings>

3. appSettings配置节:

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

<!–进销存管理系统初始化需要的参数–>

<appSettings>

<clear />

<addkey=”userName”value=”" />

<addkey=”password”value=”" />

<addkey=”Department”value=”" />

<addkey=”returnValue”value=”" />

<addkey=”pwdPattern”value=”" />

<addkey=”userPattern”value=”" />

</appSettings>

4.读取与更新app.config

对于app.config文件的读写, SystemConfiguration.asp标题为“Read/Write App.Config File with .NET 2.0”一文。

请注意:要使用以下的代码访问app.config文件,除添加引用System.Configuration外,还必须在项目添加对System.Configuration.dll的引用。

4.1 读取connectionStrings配置节

///<summary>

///依据连接串名字connectionName返回数据连接字符串

///</summary>

///<param name=”connectionName”></param>

///<returns></returns>

private static string GetConnectionStringsConfig(string connectionName)

{

string connectionString =

ConfigurationManager.ConnectionStrings[connectionName].ConnectionString.ToString();

Console.WriteLine(connectionString);

return connectionString;

}

4.2 更新connectionStrings配置节

///<summary>

///更新连接字符串

///</summary>

///<param name=”newName”>连接字符串名称</param>

///<param name=”newConString”>连接字符串内容</param>

///<param name=”newProviderName”>数据提供程序名称</param>

private static void UpdateConnectionStringsConfig(string newName,

string newConString,

string newProviderName)

{

bool isModified = false; //记录该连接串是否已经存在

//如果要更改的连接串已经存在

if (ConfigurationManager.ConnectionStrings[newName] != null)

{

isModified = true;

}

//新建一个连接字符串实例

ConnectionStringSettings mySettings =

new ConnectionStringSettings(newName, newConString, newProviderName);

// 打开可执行的配置文件*.exe.config

Configuration config =

ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

// 如果连接串已存在,首先删除它

if (isModified)

{

config.ConnectionStrings.ConnectionStrings.Remove(newName);

}

// 将新的连接串添加到配置文件中.

config.ConnectionStrings.ConnectionStrings.Add(mySettings);

// 保存对配置文件所作的更改

config.Save(ConfigurationSaveMode.Modified);

// 强制重新载入配置文件的ConnectionStrings配置节

ConfigurationManager.RefreshSection(“ConnectionStrings”);

}

4.3 读取appStrings配置节

///<summary>

///返回*.exe.config文件中appSettings配置节的value项

///</summary>

///<param name=”strKey”></param>

///<returns></returns>

private static string GetAppConfig(string strKey)

{

foreach (string key in ConfigurationManager.AppSettings)

{

if (key == strKey)

{

return ConfigurationManager.AppSettings[strKey];

}

}

return null;

}

4.4 更新connectionStrings配置节

///<summary>

///在*.exe.config文件中appSettings配置节增加一对键、值对

///</summary>

///<param name=”newKey”></param>

///<param name=”newValue”></param>

private static void UpdateAppConfig(string newKey, string newValue)

{

bool isModified = false;

foreach (string key in ConfigurationManager.AppSettings)

{

if(key==newKey)

{

isModified = true;

}

}
 

// Open App.Config of executable

Configuration config =

ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

// You need to remove the old settings object before you can replace it

if (isModified)

{

config.AppSettings.Settings.Remove(newKey);

}

// Add an Application Setting.

config.AppSettings.Settings.Add(newKey,newValue);

// Save the changes in App.config file.

config.Save(ConfigurationSaveMode.Modified);

// Force a reload of a changed section.

ConfigurationManager.RefreshSection(“appSettings”);

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/438876.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python爬取文件归类_python爬取各类文档方法归类汇总

HTML文档是互联网上的主要文档类型&#xff0c;但还存在如TXT、WORD、excel、PDF、csv等多种类型的文档。网络爬虫不仅需要能够抓取HTML中的敏感信息&#xff0c;也需要有抓取其他类型文档的能力。下面简要记录一些个人已知的基于python3的抓取方法&#xff0c;以备查阅。1.抓取…

.NET(C#)有哪些主流的ORM框架

前言 在以前的一篇文章中&#xff0c;为大家分享了《什么是ORM&#xff1f;为什么用ORM&#xff1f;浅析ORM的使用及利弊》。那么&#xff0c;在目前的.NET(C#)的世界里&#xff0c;有哪些主流的ORM&#xff0c;SqlSugar&#xff0c;Dapper&#xff0c;Entity Framework(EF)还…

android 加载网络bitmap图片 oom 简书_Android常见问题--ImageView加载图片OOM

开发中给ImageView加载一个高质量图片时&#xff0c;APP抛出了“Canvas: trying to draw too large(840253440bytes) bitmap.”的异常。猜测是图片占用内存太大&#xff0c;超出APP被分配的内存(我用的mate9&#xff0c;APP被分的内存差不多200m)&#xff0c;造成了OOM。解决方…

.net开源框架开源类库(整理)

常用库 Json.NET https://github.com/JamesNK/Newtonsoft.Json Json.Net 是一个读写Json效率比较高的.Net框架.Json.Net 使得在.Net环境下使用Json更加简单。通过Linq To JSON可以快速的读写Json&#xff0c;通过JsonSerializer可以序列化你的.Net对象。让你轻松实现.Net中…

docker jdk mysql_docker部署springboot前后端分离项目(jdk+jar包+mysql+redis+nginx)(示例代码)...

jdk1.8&#xff0c;dockerfile文件1.vim jdk-dockerfile?FROM centos:7MAINTAINER sinvie.cnWORKDIR /usrRUN mkdir /usr/local/javaADD jdk-8u221-linux-x64.tar.gz /usr/local/java/ENV JAVA_HOME /usr/local/java/jdk1.8.0_221ENV JRE_HOME $JAVA_HOME/jreENV CLASSPATH $J…

matlab连接mysql教程视频_Matlab建立到Oracle数据库的连接

Linux下的配置过程和Windows一样&#xff0c;如下&#xff1a;1、将Oracle JDBC的JAR包拷贝到Matlab的相关目录(..\matlab\java\jar\toolbox\)下。一、Matlab通过ODBC建立到Oracle数据库的连接1、在Windows下“开始”→“控制面板”→“性能和维护”→“管理工具”&#xff0c;…

C# App.config学习

进入公司一年多来&#xff0c;对配置文件添加了不少参数&#xff0c;但是从未想过这些参数是如何被读取出来的&#xff0c;今天把读取参数的处理看了一下&#xff0c;收获不少。假定有App.config如下 <?xml version"1.0" encoding"utf-8" ?> <…

php mysql 查询时间_PHP-MySQL查询需要大量时间才能执行

我正在开发时间表应用程序,并编写PHP代码以提取所有时间表直到日期.这是我为获取时间表而编写的查询-选择a.accnt_name,u.username,DATE_FORMAT(t.in_time,’&#xff05;H&#xff1a;&#xff05;i’)inTime,DATE_FORMAT(t.out_time,’&#xff05;H&#xff1a;&#xff05;…

大数据-----软件开发模型(详细讲解)

大数据学习免费学习资料&#xff08;免费教程&#xff09; 软件工程中&#xff0c;常用的开了模型有四种&#xff1a;瀑布模型、原型模型、增量模型和螺旋模型。 ⒈瀑布模型包括计划&#xff0c;需求分析、设计、编码、测试、运行维护六个阶段&#xff0c;阶段自上而下&#x…

python response[200_python – django上的代码200 httpresponse

我正在进行服务基本登录,我需要在Django视图中回答代码200和JSON,但我不知道这是否是使用HttpResponse库的正确形式&#xff1f;def Login(email,password):UserCUser()if User.is_valid(email,password) :userUser.find(email)datos[Id] str(user[Id])datos[Name] user[Name…

C#中struct和class的区别详解

本文详细分析了C#中struct和class的区别&#xff0c;对于C#初学者来说是有必要加以了解并掌握的。 简单来说&#xff0c;struct是值类型&#xff0c;创建一个struct类型的实例被分配在栈上。class是引用类型&#xff0c;创建一个class类型实例被分配在托管堆上。但struct和cla…

python面向对象编程的语言_怎么使用python面向对象编程

怎么使用python面向对象编程发布时间&#xff1a;2020-08-25 13:42:19来源&#xff1a;亿速云阅读&#xff1a;89作者&#xff1a;Leah本篇文章给大家分享的是有关怎么使用python面向对象编程&#xff0c;小编觉得挺实用的&#xff0c;因此分享给大家学习&#xff0c;希望大家阅…

软件测试计划时要记住什么

测试计划是软件测试生命周期的早期阶段之一。良好的计划是平稳执行阶段的关键&#xff0c;而糟糕的计划可能导致不必要的时间消耗。测试用例编写&#xff0c;资源分配等是作为测试计划的一部分执行的一些活动。 在规划过程中应注意并注意一些关键点&#xff0c;以避免将冗余问题…

ssm框架搭建连接mysql_从零开始搭建SSM框架(Spring + Spring MVC + Mybatis)

最近在回顾和总结一些技术&#xff0c;想到了把之前比较火的 SSM 框架重新搭建出来&#xff0c;作为一个小结&#xff0c;同时也希望本文章写出来能对大家有一些帮助和启发&#xff0c;因本人水平有限&#xff0c;难免可能会有一些不对之处&#xff0c;欢迎各位大神拍砖指教&am…

基于TFS实践敏捷-可视化管理

TFS是基于微软平台一套不错的系统&#xff0c;支持源码管理运行调试持续集成自动化测试Bug管理代码评审任务项管理文档管理沟通管理。 基于TFS 2015实践看板管理&#xff0c;让团队的数据可视化&#xff0c;让大家更多的关心产品、关注团队的努力&#xff0c;增强沟通、及时反映…

linux查看java版本_linux 查看java版本

inux查看java jdk安装路径和设置环境变量windows&#xff1a;set java_home:查看JDK安装路径java -version:查看JDK版本linux&#xff1a;whereis javawhich java (java执行路径)**echo $JAVA_HOME****echo $PATH**二&#xff1a;下面是配置linux的环境变量&#xff1a;(记得so…

[转载]基于TFS实践敏捷-修复Bug和执行代码评审

本主题阐释了这些功能&#xff0c;以继续这一关注虚拟敏捷团队成员的一天的教程。 Peter 忙于编写一些代码以完成积压工作 (backlog) 项任务。但是&#xff0c;他的同事发现了一个阻碍他们工作的 Bug&#xff0c;他想立即修复此 Bug。 他暂停了手中的工作并修复此 Bug。 他请求…

lzw压缩 java_java实现的LZW 压缩算法源码 | 学步园

导读&#xff1a;/** LZW.java** Created on 01 Dec 2005** Implementation of LZW compression/decompression algorithm*/import java.io.* ;/**** author Moshe Fresko* courseAlgorithmic Programming 1* exercise3*/public class LZW implements Compression{boolean stop…

单元测试入门

https://docs.microsoft.com/zh-cn/visualstudio/test/getting-started-with-unit-testing?viewvs-2019 使用 Visual Studio 定义和运行单元测试&#xff0c;使代码保持正常运行、确保代码覆盖率并在客户之前找到错误和缺陷。 经常运行单元测试&#xff0c;确保代码正常运行。…

java中乐观锁_Java中乐观锁与悲观锁的实现

锁(locking)业务逻辑的实现过程中&#xff0c;往往需要保证数据访问的排他性。如在金融系统的日终结算处理中&#xff0c;我们希望针对某个cut-off时间点的数据进行处理&#xff0c;而不希望在结算进行过程中(可能是几秒种&#xff0c;也可能是几个小时)&#xff0c;数据再发生…