请参阅下面的编码:
**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控件库中执行异常?。
解决方案是什么?。
答案 0 :(得分:0)
如果您正在使用测试项目,则需要在那里添加设置(app.config文件)。
如果您直接调试,DEVENV会创建一个托管用户控件的示例应用程序,您需要显式读取设置。
您可以使用preprocessor directives来区分用户是通过DEVENV进行控制调试,还是通过托管在app下进行调试。
代码
#ifdef RunningUnderHost
// read app settings
#endif
RunningUnderHost可以在库上定义,而不是在app上定义。