连接字符串存储在哪里

2024-03-30

我正在创建一个类库,其中包含我在开发的应用程序中经常使用的所有自定义类。该库被编译并作为参考添加到我的每个应用程序中,使我能够调用该库中包含的自定义类。

我的库中的自定义类包括多层继承,但它们最终都起源于我称为“Alpha”的基类。在该类中,我还保存连接字符串,以便库中的所有其他类继承它。许多类都大量使用 ADO 来与 SQL 数据库进行通信,因此让所有类都可以使用连接字符串至关重要。

我遇到的问题是,我想要使用类库的每个应用程序都有自己的数据库,因此需要每个应用程序独有的连接字符串。因此,连接字符串不能包含在我的类库中,因为这意味着我使用类库的所有应用程序都将寻找相同的 SQL 数据库。但是,如果我从“Alpha”类中删除连接字符串,则类库将无法编译,因为它使用 ADO.NET 的所有方法都在查找该连接字符串。

这有点像先有鸡还是先有蛋的情况。

即我需要 Alpha 类中的连接字符串才能编译类库。 即连接字符串不能位于类库中,因为我需要它对于每个应用程序都是唯一的

我能想到的唯一解决方案是为我的类库中使用 ADO 的每个方法提供一个参数来保存连接字符串,然后可以从应用程序代码传入该参数。但这似乎不是解决这个问题的一个非常简洁的方法。

理想情况下,我想要的是每个应用程序中的一个位置来存储连接字符串。然后,我需要某种方式来引用类库中的该位置,即使在编写类库时该位置不可用(因为它位于各个应用程序内部)。


通常,连接字符串在应用程序的生命周期内是不变的,因此您可以从实际客户端应用程序的 app.config 中提取它,并要求使用您的库,客户端应用程序将此字符串传递到您的库。

因此,我决定在我的库中创建一个全局帮助程序类,在其中存储从客户端应用程序传递的连接字符串,然后我的内部库方法使用此全局属性来读取连接。

public static class DatabaseHelper
{
     public static DbConnectionString {get;set;}
}

然后客户端应用程序在启动调用期间

DatabaseHelper.DbConnectionString = ConfigurationManager.ConnectionStrings["MyDbCon"].ConnectionString;

在我的图书馆时

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

连接字符串存储在哪里 的相关文章

  • 通过 CMIS (dotCMIS) 连接到 SP2010:异常未经授权

    我正在使用 dotCMIS 并且想要简单连接到我的 SP2010 服务器 我尝试用 C 来做到这一点 如下所示http chemistry apache org dotnet getting started with dotcmis htm
  • WCF RIA 服务 - 加载多个实体

    我正在寻找一种模式来解决以下问题 我认为这很常见 我正在使用 WCF RIA 服务在初始加载时将多个实体返回给客户端 我希望两个实体异步加载 以免锁定 UI 并且我想利用 RIA 服务来执行此操作 我的解决方案如下 似乎有效 这种方法会遇到
  • 用于检查类是否具有运算符/成员的 C++ 类型特征[重复]

    这个问题在这里已经有答案了 可能的重复 是否可以编写一个 C 模板来检查函数是否存在 https stackoverflow com questions 257288 is it possible to write a c template
  • HTTPWebResponse 响应字符串被截断

    应用程序正在与 REST 服务通信 Fiddler 显示作为 Apps 响应传入的完整良好 XML 响应 该应用程序位于法属波利尼西亚 在新西兰也有一个相同的副本 因此主要嫌疑人似乎在编码 但我们已经检查过 但空手而归 查看流读取器的输出字
  • 不同枚举类型的范围和可转换性

    在什么条件下可以从一种枚举类型转换为另一种枚举类型 让我们考虑以下代码 include
  • 将 VSIX 功能添加到 C# 类库

    我有一个现有的单文件生成器 位于 C 类库中 如何将 VSIX 项目级功能添加到此项目 最终目标是编译我的类库项目并获得 VSIX 我实际上是在回答我自己的问题 这与Visual Studio 2017 中的单文件生成器更改 https s
  • C#中如何移动PictureBox?

    我已经使用此代码来移动图片框pictureBox MouseMove event pictureBox Location new System Drawing Point e Location 但是当我尝试执行时 图片框闪烁并且无法识别确切
  • 重载<<的返回值

    include
  • 如何设计以 char* 指针作为类成员变量的类?

    首先我想介绍一下我的情况 我写了一些类 将 char 指针作为私有类成员 而且这个项目有 GUI 所以当单击按钮时 某些函数可能会执行多次 这些类是设计的单班在项目中 但是其中的某些函数可以执行多次 然后我发现我的项目存在内存泄漏 所以我想
  • SolrNet连接说明

    为什么 SolrNet 连接的容器保持静态 这是一个非常大的错误 因为当我们在应用程序中向应用程序发送异步请求时 SolrNet 会表现异常 在 SolrNet 中如何避免这个问题 class P static void M string
  • 如何序列化/反序列化自定义数据集

    我有一个 winforms 应用程序 它使用强类型的自定义数据集来保存数据进行处理 它由数据库中的数据填充 我有一个用户控件 它接受任何自定义数据集并在数据网格中显示内容 这用于测试和调试 为了使控件可重用 我将自定义数据集视为普通的 Sy
  • 垃圾收集器是否在单独的进程中运行?

    垃圾收集器是否在单独的进程中启动 例如 如果我们尝试测量某段代码所花费的进程时间 并且在此期间垃圾收集器开始收集 它会在新进程上启动还是在同一进程中启动 它的工作原理如下吗 Code Process 1 gt Garbage Collect
  • 使用 x509 证书签署 json 文档或字符串

    如何使用 x509 证书签署 json 文档或字符串 public static void fund string filePath C Users VIKAS Desktop Data xml Read the file XmlDocum
  • 如何使用 C# / .Net 将文件列表从 AWS S3 下载到我的设备?

    我希望下载存储在 S3 中的多个图像 但目前如果我只能下载一个就足够了 我有对象路径的信息 当我运行以下代码时 出现此错误 遇到错误 消息 读取对象时 访问被拒绝 我首先做一个亚马逊S3客户端基于我的密钥和访问配置的对象连接到服务器 然后创
  • 如何从两个不同的项目中获取文件夹的相对路径

    我有两个项目和一个共享库 用于从此文件夹加载图像 C MainProject Project1 Images 项目1的文件夹 C MainProject Project1 Files Bin x86 Debug 其中有project1 ex
  • C# 模拟VolumeMute按下

    我得到以下代码来模拟音量静音按键 DllImport coredll dll SetLastError true static extern void keybd event byte bVk byte bScan int dwFlags
  • 如何将服务器服务连接到 Dynamics Online

    我正在修改内部管理应用程序以连接到我们的在线托管 Dynamics 2016 实例 根据一些在线教程 我一直在使用OrganizationServiceProxy out of Microsoft Xrm Sdk Client来自 SDK
  • Python 类继承 - 诡异的动作

    我观察到类继承有一个奇怪的效果 对于我正在处理的项目 我正在创建一个类来充当另一个模块的类的包装器 我正在使用第 3 方 aeidon 模块 用于操作字幕文件 但问题可能不太具体 以下是您通常如何使用该模块 project aeidon P
  • C++ 标准是否指定了编译器的 STL 实现细节?

    在写答案时this https stackoverflow com questions 30909296 can you put a pimpl class inside a vector我遇到了一个有趣的情况 这个问题演示了这样一种情况
  • 使用.NET技术录制屏幕视频[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有一种方法可以使用 NET 技术来录制屏幕 无论是桌面还是窗口 我的目标是免费的 我喜欢小型 低

随机推荐

  • 重写 XMLHttpRequest.open()

    我怎样才能覆盖XMLHttpRequest open 方法然后捕获并改变它的参数 我已经尝试过代理方法 但它不起作用 尽管删除了打开覆盖XMLHttpRequest 被称为 function var proxied window XMLHt
  • 帮助设置 Ruby on Rails 和 MySQL - 提供奖励

    我迫切需要任何慈善红宝石 Rails 专家的帮助 我真的很想学习RoR 但我无处可去 因为每次我到达需要连接数据库的阶段时 都会出现一些问题 这就是我现在要做的事情 Mac OSX 10 6 6 红宝石 1 9 2 导轨 3 0 5 MyS
  • WCF DataService 不支持预检选项请求?

    我想使用基于 ajax 的组件 KendoUI 来读取 修改 WCF DataServices 实现的 OData 端点上的实体 首先 服务实现相当简单 public class MyFooService DataService
  • 如何在 Windows 命令行中用不同的颜色进行回显

    我知道color bf命令设置整个命令行窗口的颜色 但我想以不同的颜色打印一行 我想用不同的颜色打印一行 使用 ANSI 转义序列 Windows 10 之前的 Windows 控制台上不支持 ANSI 颜色 对于 Windows 10 以
  • 如何在 Julia 1.0 中离线安装 julia 包?

    我有自己的 Julia 包 在 Julia 0 6 上运行良好 当我尝试升级到 Julia 1 0 时 我发现在 Julia 1 0 中添加我自己的包更加困难 我不能把它放在 pkg dir 下 在我的情况下 该包只是我本地磁盘上的几个文件
  • 本地 Postgres 应用程序在端口 5432 上运行,但映射到该端口的 Docker Compose 服务运行时没有错误?

    我在 MacOS 上 Postgres 应用程序在默认端口 5432 上运行 I ran docker compose up对于以下docker compose yml version 3 3 services postgresql ima
  • Git 设置最佳实践

    我的任务是为我的办公室设置 Git 我们有几个网站 我刚刚设置了一个网络驱动器供我们将更改推送到其中 我的问题是 在哪里初始化 Git 存储库 每个站点都有新的 dir init 吗 干净的新驱动器中的一个单元 每个单元用于不同的站点 我还
  • 无法运行任何 flutter 命令“flutter 工具无法访问文件或目录”

    每当我运行 flutter 命令时 包括 扑医生 扑干净 颤振通道 任何通道 etc 我收到以下错误 Gregorys MacBook Pro gregory flutter doctor Unhandled exception Excep
  • 最小宽度和最大宽度 css 媒体查询

    当使用宽度为 720px 的 Samsung Galaxy Nexus 时 这行代码不应该加载样式表 mobile large css 吗 但事实并非如此 这是什么原因以及如何解决 我也在用这个 可能你必须定义device width而不是
  • 如何根据单元格条件将列变成行?

    以下是我的数据示例 Omschrijving AMM AM FG G K MOTRED MINI BPM RVM MOTRED STM RMI MOTRED 1 x magneetplug 1 1 1 1 1 1 2 x afwaterin
  • 第一个弹出窗口显示过时的状态

    我发现了一个符合我口味的弹出窗口的奇怪行为 我希望它显示一个视图PopoverItem and number 两者均应从onTapGesture in ForEach 问题是弹出窗口总是显示默认值number第一次点击时 它会按预期工作 错
  • 枚举的编译时查找表

    我有一个枚举列表 其定义如下 enum PinEnum kPinInvalid kPinA0 kPinA1 kPinB0 kPinB1 kPinC0 kPinC1 每个枚举都需要与其他两个值相关联 即端口和引脚号 目前 我通过运行时函数访问
  • 更改背景图像的不透明度

    我有一个带有文本块的 div 元素和一个父 div 我在其中设置了背景图像 现在我想降低背景图像的不透明度 我怎样才能做到这一点 EDIT 我希望通过编辑 html 内容来改变我的博客文章在 blogger com 上的显示方式 html
  • Java 系统属性的范围

    在Java中我们使用System setProperty 方法来设置一些系统属性 根据本文 http blogs oracle com foo entry monitored system setproperty系统属性的使用有点棘手 Sy
  • 在每个页面上缓存包含特定于会话的数据的 Drupal 站点

    我们有一个用 Drupal 6 编写的网站 我们想使用Drupal的缓存机制来提高性能 但是当我们打开它时 我们发现了问题 因为我们的站点每个页面都显示会话数据 Drupal 的缓存系统仅适用于静态内容页面 而我们的会话数据实际上意味着我们
  • AWS API Gateway CORS 飞行前检查失败

    我正在使用 Zappa 来部署我的应用程序 cors 已启用 并且当按下 API Gateway OPTIONS 资源中选项上的 test 按钮时 一切似乎都工作正常 但是 当我尝试进行 CORS 飞行前检查时 我收到了 500 错误 me
  • Bigquery 将列添加到表架构

    我正在尝试向 BigQuery 现有表添加新列 我尝试过 bq 命令工具和 API 方法 调用 Tables update 时出现以下错误 我尝试过提供带有附加字段的完整架构 这也给了我相同的错误 如下所示 使用 API 我收到以下错误 s
  • 将 ParameterExpression 与 org.springframework.data.jpa.domain.Specification 一起使用时如何将参数传递给函数?

    我使用 org springframework data jpa domain Specification 与 JpaSpecificationExecutor 一起轻松创建带有 Java 条件的查询 但现在我需要调用返回整数值的 MySQ
  • 奇怪的“在所有成员初始化之前被闭包捕获的‘self’”错误

    请看一下下面的代码 class A let a String let b String init a String b String self a a self b b class B A let c Bool private let aE
  • 连接字符串存储在哪里

    我正在创建一个类库 其中包含我在开发的应用程序中经常使用的所有自定义类 该库被编译并作为参考添加到我的每个应用程序中 使我能够调用该库中包含的自定义类 我的库中的自定义类包括多层继承 但它们最终都起源于我称为 Alpha 的基类 在该类中