gpt4 book ai didi

c# - ConfigurationManager 连接字符串在 UserControl 中为空

转载 作者:太空狗 更新时间:2023-10-29 21:44:36 24 4
gpt4 key购买 nike

我有一个应用程序,它通过使用如下内容的数据层将数据获取到表单:

public DataTable get(String query, ArrayList parameters = null)
{
using (iDB2Connection cn = new iDB2Connection(ConfigurationManager.ConnectionStrings["iseries"].ToString()))
{
// get the data and return them
}
}

我有获取数据的表单,这工作正常。

但是,我创建了一个 UserControl,它通过这种方法获取数据,当我运行我的项目时它工作正常,但是,包含 UserControl 的表单抛出一个设计器异常。

"To prevent possible data loss before loading the designer, the following errors must be resolved: "

我发现错误位于从<appSettings> 中检索连接字符串。 .

它抛出一个空指针异常。

但仅限于设计模式。当我忽略它时,一切正常,但是,我想知道如何解决这个问题。

为什么我的<appSettings>通过我的 UserControl 访问它们时为空?

更新 1

我的 UserControl 似乎无法识别 <appSettings>完全没有。

当我将此代码放入我的 UserControl Load 事件时,我也得到了一个空引用。

private void SelectUser_Load(object sender, EventArgs e)
{
txtLocation.Text = ConfigurationManager.AppSettings["location"].ToString();
}

最佳答案

我找到了解决方案,在设计模式下,用户控件已经执行了加载事件中的代码。因为 App.config 在设计模式下不可用,所以找不到,因此不会加载。所以我做了一些检查以检查是否处于设计模式:

bool designMode = (LicenseManager.UsageMode == LicenseUsageMode.Designtime);
if (designMode)
{
string location = ConfigurationManager.AppSettings["location"].ToString();
}

关于c# - ConfigurationManager 连接字符串在 UserControl 中为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23785529/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com