【问题标题】:Initialization Of Connection String In WinForm And In UserControlWinForm和UserControl中连接字符串的初始化
【发布时间】:2012-11-11 11:32:14
【问题描述】:

参见下面的编码:

**Application Config File**

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

<appSettings>
<add key ="Mystring" value ="server=MyServer;Initial Catalog 
MyDataBase;uid=MYUID;pwd=MYPWD"/>
</appSettings>

</configuration>


**Connection Code:**

string connstr = ConfigurationManager.AppSettings["Mystring"]; 
SqlConnection con = new SqlConnection(connstr);
con.Open();

我在 WinApplication 和 Windows 控件库(UserControl) 中对其进行了测试,发现上面的代码在 WinApplication 中有效,但在 Windows 控件库中却没有,而是抛出异常,如 ” 连接字符串尚未初始化”

如果两个 VS 应用程序中都存在 SQL 程序集,那么在 Winows 控件库中是否存在合理的异常?

解决方案是什么?

【问题讨论】:

  • 你为什么使用appSettings而不是内置的connectionStrings配置部分?
  • 你是如何执行控制库的?
  • @Oded,按 f5 功能键
  • 控件库是一个DLL。不能设置为启动项目。加载控件库并执行的启动项目是什么样的项目?
  • @Oded,是的,你说得对,控制库是一个 DLL 应用程序,但它可以通过执行功能键 f5 来测试,你会知道你的代码是否可执行,如果它是可执行的你将把它应用到你的启动项目中,比如 WinApplication,我也是这样做的。

标签: c# windows visual-studio user-controls connection-string


【解决方案1】:

如果您使用的是测试项目,则需要在此处添加设置(app.config 文件)。

如果您直接调试,DEVENV 会创建一个托管用户控件的示例应用程序,您需要明确读取设置。

您可以使用preprocessor directives 区分用户是通过DEVENV 控制调试,还是通过托管在应用程序下进行调试。

类似代码

  #ifdef RunningUnderHost
  // read app settings
  #endif

RunningUnderHost 可以在库上定义,而不是在应用上。

【讨论】:

  • 对不起,这不是我的问题的答案
猜你喜欢
  • 2023-03-16
  • 2013-10-04
  • 2023-03-29
  • 1970-01-01
  • 1970-01-01
  • 2017-10-10
  • 2017-09-14
  • 1970-01-01
相关资源
最近更新 更多