很简单的C#程序产生一个'NullReferenceException异常是unhandle

2019-09-28 05:48发布

我有我使用,试图帮助我使用ADO.NET一个简单的WinForm。 它有一个DataGridView

我添加了一个紧凑的SQL Server数据库的项目叫experiment.sdf

在App.config文件我已经添加了以下内容。 我用了一个以前的项目的应用程序文件的依据是那么也许在这里有一个错误?:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
</configSections>
<connectionStrings>
  <add name="DatabaseDGVexperiments.Properties.Settings.DatabaseDGVexperimentsConnStg"
      connectionString="Data Source=|DataDirectory|\experiment.sdf"
      providerName="Microsoft.SqlServerCe.Client.3.5" />
</connectionStrings>
</configuration>

我已经添加到配置库的引用。

形式后面是以下代码:

  SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["DatabaseDGVexperimentsConnStg"].ConnectionString);

当它击中线SqlConnection conn = ...我得到一个错误NullReferenceException was unhandled 。 我该如何解决?

Answer 1:

更改此:

name="DatabaseDGVexperiments.Properties.Settings.DatabaseDGVexperimentsConnStg"

至:

name="DatabaseDGVexperimentsConnStg"

或改变这样的:

ConfigurationManager.ConnectionStrings["DatabaseDGVexperimentsConnStg"]

至:

ConfigurationManager.ConnectionStrings["DatabaseDGVexperiments.Properties.Settings.DatabaseDGVexperimentsConnStg"]


Answer 2:

ConfigurationManager.ConnectionStrings["DatabaseDGVexperiments.Properties.Settings.DatabaseDGVexperimentsConnStg"].ConnectionString

注意,你需要给名称

DatabaseDGVexperiments.Properties.Settings.DatabaseDGVexperimentsConnStg

不是

DatabaseDGVexperimentsConnStg

编辑:

您需要使用SqlCeConnectionSqlCeDataAdapter与SqlServerCe数据库工作过,加参考System.Data.SqlServerCe ,然后代码应该如下喜欢。

using (var conn = new SqlCeConnection(ConfigurationManager.ConnectionStrings["DatabaseDGVexperiments.Properties.Settings.DatabaseDGVexperimentsConnStg"].ConnectionString))
{
    conn.Open();
    using (var myAdapt = new SqlCeDataAdapter("SELECT * FROM experiment.dbo.helloworld", conn))
    {
        DataSet mySet = new DataSet();
        myAdapt.Fill(mySet, "AvailableValues");
        DataTable myTable = mySet.Tables["AvailableValues"];
        this.uxExperimentDGV.DataSource = myTable;
    }
}


Answer 3:

您已经使用在你的代码不同的密钥值,然后在web.config中。 字符串必须完全匹配。



文章来源: Very simple C# program generates a `NullReferenceException was unhandled` error