Свойство ConnectionString не было инициализировано. Как это исправить?

#c# #winforms #visual-studio-2013

#c# #winforms #visual-studio-2013

Вопрос:

Я использую метод (GetConnectionString()) в классе (Utility.cs) как часть другого метода (fillDT()) в другом классе (Function.cs).

 internal class Utility
{
    internal static string GetConnectionString()
    {
        //Util-2 Assume failure.
        string returnValue = null;

        //Util-3 Look for the name in the connectionStrings section.
        ConnectionStringSettings settings = ConfigurationManager.ConnectionStrings["Assignment_new.Properties.Settings.connString"];

        //If found, return the connection string.
        if (settings != null)
            returnValue = settings.ConnectionString;

        return returnValue;
    }
}

class Functions
{
    public static DataTable fillDT(string sqlstatement) //Fills the datatable with data from sqlstatement
    {
        string connstr = Assignment_new.Utility.GetConnectionString();
        SqlConnection con = new SqlConnection(connstr);
        con.Open();
        SqlDataAdapter sda = new SqlDataAdapter(sqlstatement, con);
        DataTable dt = new DataTable();
        sda.Fill(dt);
        return dt;
    }
  

Всякий раз, когда я вызываю Functions.fillDT(@»sql statement»), появляется сообщение об ошибке, в котором говорится, что строка подключения не инициализирована.

Комментарии:

1. Покажите нам вашу строку подключения, чтобы сообщить вам о проблеме

Ответ №1:

Убедитесь, что вы используете правильные config файлы для сохранения строки подключения. Я вижу, что вы помечаете этот вопрос как WinForms , поэтому ваша строка подключения должна быть внутри App.Config файла, а не внутри Web.Config . Если это веб-приложение, то вам следует поступить наоборот, сохранить его в Web.Config файле в самом верхнем каталоге.

Кроме того, если это настольное приложение, и вы используете App.Config file для сохранения своих настроек, убедитесь, что файл скопирован в ваш выходной каталог, где находится исполняемый файл (обычно с тем же именем, что и исполняемый файл. т.е. <EXNAme>.exe.config ). В противном случае, когда приложение запускается, оно не найдет его.

Комментарии:

1. Я ищу строку в App.config и заменил «Assignment_new.Properties. Settings.connString» с тем, который я нашел, и он сработал.

Ответ №2:

Вы только что проверили, что ваша строка подключения равна нулю. Проверьте строку.IsNullOrEmpty(), чтобы проверить, не равно ли оно null . Кроме того, вам нужно установить точку останова и проверить, действительно ли значение строки подключения, которое вы видите в вашем app.config, получено в вашем коде, и оно правильное.

Комментарии:

1. Я только что проверил, и это показывает, что settings = null, и я действительно не знаю почему.