System.InvalidOperationException: 'ConnectionString 属性尚未初始化。'

Posted

技术标签:

【中文标题】System.InvalidOperationException: \'ConnectionString 属性尚未初始化。\'【英文标题】:System.InvalidOperationException: 'The ConnectionString property has not been initialized.'System.InvalidOperationException: 'ConnectionString 属性尚未初始化。' 【发布时间】:2018-02-06 02:21:25 【问题描述】:

我正在尝试用元素填充列表框,并通过一个干净的指南做所有事情,但是当我尝试运行它时出现连接字符串错误。

显然我做了一些愚蠢的事情,无法理解,所以更深入的解释将不胜感激

错误

ConnectionString 属性尚未初始化。

守则

public partial class FormMain : Form

    SqlConnection connection;
    string connectionString;

    public FormMain()
    
         InitializeComponent();

         connectionString = ConfigurationManager.ConnectionStrings["NaujasAutoSalonas.Properties.Settings.AutoSalonasConnectionString"].ConnectionString;    
    

    private void FormMain_Load(object sender, EventArgs e)
    
        PopulateAutoKlases();
        

    private void PopulateAutoKlases()
    
        using (connection = new SqlConnection(connectionString));
           using (SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM AutoKlases", connection))
           
                DataTable KlasesTable = new DataTable();
                adapter.Fill(KlasesTable);

                lstKlases.DisplayMember = "KlasesPavadinimas";
                lstKlases.ValueMember = "KlasesID";
                lstKlases.DataSource = KlasesTable;
           
     
 

【问题讨论】:

How to fix "The ConnectionString property has not been initialized"的可能重复 【参考方案1】:

正如您所说,连接字符串属性未初始化,所以我猜您的应用程序无法从配置文件中读取连接字符串。您可以通过在 的构造函数中放置断点来确认这一点FormMain 类。

如果没有在构造函数中设置连接字符串,那么您需要确定您是否在配置文件中正确声明了连接字符串。因为可能有很少的 config 文件,所以它是在正确的 config 文件中声明连接字符串很重要。

或者,如果您在 .settings 文件中为连接字符串定义属性,则可以验证您是否正确访问它。

【讨论】:

以上是关于System.InvalidOperationException: 'ConnectionString 属性尚未初始化。'的主要内容,如果未能解决你的问题,请参考以下文章

视图中出现 InvalidOperationException.Collection 被修改错误