【问题标题】:Connection string in usercontrol not working用户控件中的连接字符串不起作用
【发布时间】:2011-11-11 12:20:04
【问题描述】:

我正在尝试(学习)在 Winforms 中制作 UserControl。这里是我的 app.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <connectionStrings>
    <add name="LoginTestDB_cf"
      connectionString="Data Source=.\SqlExpress;Initial Catalog=LoginTestDB;Integrated Security=True;Pooling=False"
      providerName="System.Data.SqlClient" />
  </connectionStrings>
</configuration>

我创建了一个静态类并尝试获取连接字符串。我就是这样尝试的:

static class Helper
{
    public static string ConnectionString
    {
        get
        {
            string str = System.Configuration.ConfigurationManager.ConnectionStrings["LoginTestDB_cf"].ConnectionString;
            return str;
        }
    }
}

然后我尝试像这样访问连接字符串:

_myCommand = "my_command_text";
SqlConnection con = new SqlConnection();
con.ConnectionString = Helper.ConnectionString; //getting error
_cmd = new SqlCommand(_myCommand, con);
con.Open();

错误:“对象引用未设置为对象的实例。”

我在设置连接字符串时遇到错误。我可以知道这里有什么问题吗?我确信有一个小错误或无知在扮演肮脏的部分,但无法识别。

在助手类中,我什至尝试过

string str = System.Configuration.ConfigurationManager.AppSettings["LoginTestDB_cf"].ToString();

但还是没有运气。

谢谢。

【问题讨论】:

  • 您是否尝试过在 Helper 类的 ConnectionString 属性中设置断点并检查配置管理器的 ConnectionStrings 属性?
  • 您的代码似乎是对的,最初我以为您可能拼错了连接名称...
  • 字符串 str = System.Configuration.ConfigurationManager.ConnectionStrings["LoginTestDB_cf"].ConnectionString; // 在这段代码中给出错误...
  • 是不是因为我是在Usercontrol里面做的??
  • 您有多少个项目,这些文件在哪里? app.config应该在生成exe的项目中,而不是在生成dll的类库中。

标签: c# sql winforms user-controls connection-string


【解决方案1】:

好的,所以我想出了一个解决方案,并绝望地希望有人证明我错了。我将相同的文件(添加现有项目)复制到不同的 Winforms(windowsFormApplication) 解决方案。和沃拉!一切正常。所以现在,我认为,连接字符串不能在 UserControl 中使用,即使我不能证明我所说的正确。但是,是的,我使用了项目的相同文件和 app.config 的相同内容(当然我更改了文件的命名空间名称),一切都很好。如果我的基础知识有误,请告诉我。我肯定会继续在互联网上搜索这个问题。谢谢。

希望对你有帮助。

【讨论】:

    【解决方案2】:

    您可以轻松地在新创建的控件中使用连接字符串。

    这是我的设置:

    用户控件是一个带有您提供的附加代码的按钮。 Helper 类是用户控件的一部分。正如你所看到的,我通过它很好地穿过了你遇到问题的开放线。 (它打开然后关闭连接就好了,我检查过)。

    【讨论】:

    • 自定义控件是否与用户控件相同??我认为没有。好吧,你用 UserControl 尝试过同样的事情吗??
    • 您可以在 SS 中看到该代码是用户控件的一部分。公共部分类用户控件:用户控件。实际上,如果您查看选项卡名称:UserControl。
    • 但是由于一些未知的原因,它对我不起作用。让我看看。将发布更新
    • 我为你准备的项目有什么好运气吗?
    猜你喜欢
    • 2021-01-26
    • 2014-08-01
    • 2018-09-03
    • 2013-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多