连接字符串引用未设置为对象的实例

时间:2017-12-13 11:19:06

标签: c# ado.net

这是一个菜鸟问题,但我已经被困在这里几个小时,所以我需要通过这个。我有这个Windows应用程序执行一个简单的功能。它访问数据库并检查是否存在特定记录,如果存在则执行某些操作。
但它只是不想读取connection string - 它始终为空。每次初始化连接字符串时,我都会变为空。我能做错什么?我只有一个名为App.config的连接字符串。

班级档案

 private class ClassA 
 {
     private string myConnectionString = "";
     private SqlConnection mySQLConnection;
     private SqlCommand mySQLCommand;

     private int CheckIfSerialNumberExists(UInt64 ColumnToCheck)
     {
         int countResult = 0;
         myConnectionString = ConfigurationManager.ConnectionStrings["ConnectionStringName"].ConnectionString; //I get an object reference null here when the compiler executes this line. I have been using this structure for years and never got any issues
         using (mySQLConnection = new SqlConnection(myConnectionString))
         {
              string procName = "SELECT Count(*) ColumnName FROM Table WHERE ColumnName='" + ColumnToCheck + "'";
              mySQLCommand = new SqlCommand(procName, mySQLConnection);
              mySQLConnection.Open();
              countResult = (int)mySQLCommand.ExecuteScalar();
         }
         return countResult;
     }

     private void someFunc()
     {
        //Test value: 5
        if(CheckIfSerialNumberExists(5) > 0)
        {
           //Don't do anything
        }
        else
        {
           //Save to DB
        }
     }
 }

配置文件:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <connectionStrings>   
    <add name="ConnectionStringName"
         connectionString="Data Source=ServerName;Initial Catalog=DatabaseName;Persist Security Info=True;User ID=**;Password=****"
         providerName="System.Data.SqlClient" />
  </connectionStrings>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1"/></startup>
</configuration> 

1 个答案:

答案 0 :(得分:2)

所以这是快速修复:

在我的Windows应用程序中,我引用了一个类库项目。我只在该项目中添加了连接字符串。我把它添加到我的Windows应用程序项目中,然后我们去了,一切正常。真的觉得自己像个白痴。