在WinForm和UserControl中初始化连接字符串

时间:2012-11-11 11:32:14

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

请参阅下面的编码:

**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 Control Library(UserControl)中对它进行了测试,发现上面的代码在WinApplication中有效,而且在Windows控件库中也没有,而是抛出异常,如“连接字符串尚未初始化“

如果两个VS应用程序中都存在SQL程序集,那么它是否可以在Winows控件库中执行异常?。

解决方案是什么?。

1 个答案:

答案 0 :(得分:0)

如果您正在使用测试项目,则需要在那里添加设置(app.config文件)。

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

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

代码

  #ifdef RunningUnderHost
  // read app settings
  #endif

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