C#通过读取appconfig文件连接数据库

2023-11-17

以Oracle为例,C#连接数据库的时候,需要一些连接字符串,一开始写在程序中,这样会有两个问题:

  • 通用性不太好,如果程序具有普遍性,但是连接字符串写死了,每次替换很麻烦;
  • 一个工程有很多个项目,每个项目都需要连接字符串,每次更改或者设置也很麻烦。

所以,考虑把数据库的连接信息写到配置文件中,然后采用读取App.config配置文件的方式来连接数据库。具体步骤如下:

  • 1.右键项目(注意,不是解决方案,是项目,如果一个解决方案有很多的项目,在设为启动项目处点击右键即可)–>添加–>新建项–>选择应用程序配置文件,名称为App.config,保持默认,不要修改

  • 2.点击打开左侧生成的App.config文件。

  • 3.用下面的内容进行替换,用过C#连接数据库的对下面的应该不陌生,name=”“其实是key值,可以根据要求任意取;connectionString=”“是value值,里面填写的是连接Oracle的字符串。

    <?xml version="1.0" encoding="utf-8" ?>
        <configuration>
          <connectionStrings>
            <add name="oracleConn" connectionString="Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)
                 (HOST=127.0.0.1)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=orcl)));Persist Security Info=True;User ID=oracle;Password=oracle;"/>
          </connectionStrings>
        </configuration>
    
  • 4.添加引用:.NET下面的system.Configuration,并在项目中引入命名空间using System.Configuration;

  • 5.用程序读取配置文件。其实就一句话,是不是非常方便。

    private string strConnection = ConfigurationManager.ConnectionStrings["oracleConn"].ConnectionString;
    
  • 6.接下来就和之前用程序读取数据是一样的,多说几句,在该工程下可以看到该配置文件,可以在此处更改。

  • 7.同时,对于debug下生成的文件,也可以直接修改,这样就可以用在不同的数据库了。如图:

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

C#通过读取appconfig文件连接数据库 的相关文章

  • 在 LINQ 查询中进行转换

    是否可以在 LINQ 查询中进行强制转换 为了编译器的缘故 下面的代码并不糟糕 但最好将其放入一个查询中 Content content dataStore RootControl as Controls Content List
  • copy_from_user() 错误:目标大小太小

    我正在为内核模块编写 ioctl 处理程序 我想从用户空间复制数据 当我编译禁用优化的代码时 O0 gflags 编译器返回以下错误 include linux thread info h 136 17 error call to bad
  • 使用管道在父级和子级之间传递整数值

    我对如何正确使用 pipeline 在两个进程之间传递整数值有点困惑 在我的程序中 我首先创建一个管道 然后分叉它 我假设我有 两个 管道 据我了解 这是我的任务 我的父母通过 for 循环检查某个操作的整数值 i 增加计数变量 并将值保存
  • 并行运行多个任务

    我有一个代理列表 每个代理都会访问不同的站点并从站点中提取所需的数据 目前它一次只做一个 但我希望同时运行 10 20 个任务 这样它就可以一次性从 20 个站点下载 而不是只下载一个 这是我目前正在做的事情 private async T
  • 来自 double 的 static_cast 可以优化分配给 double 吗?

    我偶然发现了一个我认为不必要的功能 并且通常让我感到害怕 float coerceToFloat double x volatile float y static cast
  • 如何从经过身份验证的 SecurityToken 中获取声明

    我将令牌作为字符串传递到 SOAP 服务中 并验证了该令牌是否有效 我现在有一个 SecurityToken 在调试模式下我可以看到所有声明 特别是我想传递到另一个方法的 userId 声明 我似乎不知道如何获得这些索赔 现在 我解码了令牌
  • C++中类成员函数相互调用有什么好处?

    我是 C 新手 我发现下面的编程风格对我来说很有趣 我在这里写了一个简化版本 include
  • CMake(Ninja 后端)使用 /MT 编译

    我有一个类似的问题CMake 使用 MT 而不是 MD 进行编译 https stackoverflow com questions 14172856 cmake compile with mt instead of md但有一些差异 我正
  • 每个元素的 asp.net Web 表单自定义错误消息

    我创建了一个 Web 应用程序 表单 以及后端 SQL 插入和查询 目前我正在显示所有用户错误消息 div style padding 1em div
  • C# 结构默认值

    我有一个方法 它接受一个包含许多具有基本数据类型的字段的结构 我想传递大部分默认值 但需要进行一些调整 但我了解结构声明中的基本字段不能包含默认值声明 例如struct S int a 42 现在是这样的 OptionsStruct opt
  • 大量互斥体对性能的影响

    假设我有一个包含 1 000 000 个元素的数组 以及多个工作线程 每个线程都操作该数组中的数据 工作线程可能会使用新数据更新已填充的元素 但每个操作仅限于单个数组元素 并且独立于任何其他元素的值 使用单个互斥锁来保护整个数组显然会导致高
  • 注入包含接口的所有已注册实现的 Enumerable

    给出以下接口 public interface IMyProcessor void Process 我希望能够注册多个实现 并让我的 DI 容器将它们的可枚举注入到这样的类中 public class MyProcessorLibrary
  • 使用 STL 流时如何格式化我自己的对象?

    我想将我自己的对象输出到 STL 流 但具有自定义格式 我想出了这样的东西 但由于我之前从未使用过 locale 和 imbue 所以我不知道这是否有意义以及如何实现 MyFacet 和operator 所以我的问题是 这是否有意义以及如何
  • 使用任一默认捕获模式时,这是通过复制捕获还是 (*this) 通过引用捕获?是一样的吗?

    当我看到以下工作时我有点困惑 struct A void g void f g 但后来我发现this https stackoverflow com a 16323119 5825294答案非常详细地解释了它是如何工作的 本质上 它归结为t
  • 在 Visual Studio 2012 Express 中设置 C++ 调试环境

    我需要调试的应用程序需要设置环境变量 这在 Visual Studio 2012 中似乎非常复杂 我想做类似的事情 set path c foo c bar c windows c program files application set
  • 在多线程环境中捕获信号

    我有一个大型程序 需要尽可能具有弹性 并且有大量线程 我需要捕获所有信号SIGBUS SIGSEGV 并在必要时重新初始化有问题的线程 或者禁用该线程以继续减少功能 我的第一个想法是做一个setjump 然后设置信号处理程序 可以记录问题
  • 异步/等待 - 是*并发*吗?

    我一直在考虑 C 5 中新的异步内容 并且出现了一个特殊问题 据我了解 await关键字是一个简洁的编译器技巧 语法糖来实现连续传递 http en wikipedia org wiki Continuation passing style
  • 使用空的weak_ptr作为参数调用map::count安全吗?

    打电话安全吗map count http www cplusplus com reference map map count on an 未初始化因此为空weak ptr http en cppreference com w cpp mem
  • Adobe Illustrator 中的折线简化如何工作?

    我正在开发一个记录笔划的应用程序 您可以使用定点设备来绘制笔划 在上图中 我绘制了一个笔划 其中包含 453 个数据点 我的目标是大幅减少数据点的数量 同时仍然保持原始笔画的形状 对于那些感兴趣的人 上图笔画的坐标可以作为GitHub 上的
  • 如何使用 Microsoft Graph API 更新 MailboxSettings

    我想从不同的日历更新邮箱设置 如何构建可以通过 Microsoft Graph 更新 MailboxSetting 的请求 这是我的代码示例 但有例外 代码示例 User obj GraphServiceClient Users roomC

随机推荐

  • Qt 环境搭建

    安装QtCreator 进入Qt官网https www qt io zh cn 点击下载按钮 然后选择试用Qt 这里下载的是免费版本 也就是社区版本 如果点击购买则下载专业版 点击下载后需要填写个人信息 填好邮箱和手机 还需要填写用途 并选
  • 【基于深度学习的生活垃圾分类识别管理可视化系统-哔哩哔哩】 https://b23.tv/0UBohX2

    基于深度学习的生活垃圾分类识别管理可视化系统 哔哩哔哩 https b23 tv 0UBohX2 https b23 tv 0UBohX2
  • 【前端】Vue+Element UI案例:通用后台管理系统-Header+导航栏折叠

    文章目录 目标 代码 0 创建组件 1 按钮 2 头像下拉框 3 去除左右缝隙 4 点击按钮折叠导航栏 Vuex 5 折叠标题和Header效果 总代码 CommonHeader vue store的index js store的tab j
  • 误区 一下代码是曾经误认为 radio的onclick 事件在 发生 以下是实例代码

    实际上onclick事件还是在radio上发生 只不过是通过js把 a 标签的href属性的 值 给动态的发生该表了而已 误以为是在 a 标签上发生了onclick事件 a a
  • playwright自动化项目搭建

    具备功能 关键技术 pylaywright测试库 pytest单元测试框架 pytest playwright插件 非关键技术 pytest html插件 pytest rerunfailures插件 seldom 测试框架 实现功能 元素
  • 静态链接原理以及过程

    通常程序的编译中 或多或少会调用其它库中的函数接口 本篇blog就是讲静态库的调用流程 通常我们知道编译一个可执行程序会有这四个过程 预处理 编译 汇编以及链接 前面三步就是产生目标文件 o的过程 链接就是把各个 o文件粘在一起 构成一个可
  • 杂项设备(misc device)和字符设备(char device)区别

    杂项设备 misc device 杂项设备也是在嵌入式系统中用得比较多的一种设备驱动 在 Linux 内核的include linux目录下有Miscdevice h文件 要把自己定义的misc device从设备定义在这里 其实是因为这些
  • Go语言基础面试题

    一 选择题 1 关于异常设计 下面说法正确的是 A 在程序开发阶段 坚持速错 让程序异常崩溃 开发 测试 准生产 生产 B 在程序部署后 应恢复异常避免程序终止 C 一切皆错误 不用进行异常设计 D 对于不应该出现的分支 使用异常处理 参考
  • 2021-08-03训练记录

    2021 08 03训练记录 Magic Line String Invasion A B C 小biu放牛 小A的游戏 A B C Magic Line 样例输入 1 4 0 1 1 0 1 0 0 1 样例输出 1 999000000
  • 原始GPS与百度、谷歌、高德地图的相互转换(c语言转换)

    原始GPS与百度 谷歌 高德地图的相互转换 c语言转换 原始GPS与百度 谷歌 高德地图的相互转换 1 介绍三种坐标系 2 WGS84 GCJ02 BD09之间的相互转换 C语言实现 原始GPS与百度 谷歌 高德地图的相互转换 1 介绍三种
  • centos 7中NGINX负载均衡(最详细)

    环境 centos7 192 168 186 140 负载均衡 centos7 192 168 186 141 web端 centos7 192 168 186 142 web端 1 关闭防火墙与setenforce web端也要执行 ro
  • json 模块:处理 JSON 数据

    JSON JavaScript Object Notation 是一种轻量级的数据交换格式 易于人阅读和编写 同时也易于机器解析和生成 JSON 基础 JSON 的基础结构有两种 键值对 name value pairs 和数组 array
  • VS编译程序缺失msvcp140d.dll、vcruntime140d.dll和ucrtbased.dll解决方法

    今天编译的一个程序到客户现场电脑上运行闪退 查看发现缺少msvcp140d dll vcruntime140d dll以及ucrtbased dll 总结一下解决办法 供大家参考 方式一 找到对应的 msvcp140d dll vcrunt
  • Java的SSH连接远程服务器

    在我们的示例中 我们将首先打开SSH连接 然后执行一个命令 读取输出并将其写入控制台 最后关闭SSH连接 我们将使示例代码尽可能简单 2 JSch JSch 是SSH2的Java实现 它使我们可以连接到SSH服务器并使用端口转发 X11转发
  • 记几个数据查询语句

    查看某用户所在的表空间SELECT USERNAME DEFAULT TABLESPACE FROM DBA USERS WHERE USERNAME GISAP 查看用户表分区select from user tab partitions
  • java中 instanceof 关键字 作用 和 实际用途

    instanceof 闲聊一下 所谓看书只看前三章 基础java决定上限 所以说基础很重要 Java也是基础扎实决定你的上限 1 instanceof 是Java中的一个关键字 Java中的关键子都是小写 2 instanceof关键字的作
  • 【不忘初心】Windows11 22000.652 X64 四合一[纯净精简版][2.68G](2022.5.3)

    此版可正常更新补丁关闭按流量计费 WIN11全新的UI界面出炉 可以说这一次Windows 11全新升级 无论是从Logo上还是UI界面设计 都有很大的变化 母版来自UUP WIN11 22000 652 为了保证稳定初心的系统全部都是离线
  • 【模拟集成电路】电荷泵(CP)设计

    电荷泵 CP 设计 前言 一 电荷泵 CP 原理 1 电流失配问题 2 开关管的时钟馈通问题 3 电荷注入问题 二 电荷泵 CP 电路 三 电荷泵性能测试 测试原理图 充电测试 放电测试 参考文献 各部分链接链接 前言 本文主要内容是对电荷
  • NLP 算法工程师面试问答-DeepLearningAlgorithm

    关于生成对抗网络GAN 那些你不知道的事 一 动机 之前我们提到玻尔兹曼机 Boltzmann machine 波尔茨曼机作为一种基于能量函数的概率模型 因为能量函数比较复杂 所以存在较多的限制 虽然受限玻尔兹曼机 Restricted B
  • C#通过读取appconfig文件连接数据库

    以Oracle为例 C 连接数据库的时候 需要一些连接字符串 一开始写在程序中 这样会有两个问题 通用性不太好 如果程序具有普遍性 但是连接字符串写死了 每次替换很麻烦 一个工程有很多个项目 每个项目都需要连接字符串 每次更改或者设置也很麻