Подтвердить что ты не робот

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

Когда я запускаю свое приложение, я получаю: Свойство ConnectionString не было инициализировано.

Web.config:

<connectionStrings>
    <add name="MyDB"
         connectionString="Data Source=localhost\sqlexpress;Initial Catalog=mydatabase;User Id=myuser;Password=mypassword;" />
</connectionStrings>

Стек:

System.Data.SqlClient.SqlConnection.PermissionDemand() +4876643
System.Data.SqlClient.SqlConnectionFactory.PermissionDemand(DbConnection outerConnection) +20
System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +117
System.Data.SqlClient.SqlConnection.Open() +122

Я новичок в .NET, и я не понимаю этого. Я нашел много ответов на Google, но никто не исправил мою проблему.

Что это значит? Мой web.config плохой? Является ли моя функция плохим? Моя конфигурация SQL работает неправильно (я использую sqlexpress)?

Моя главная проблема здесь в том, что я не уверен, где начать отлаживать это... что-нибудь поможет.

ИЗМЕНИТЬ:

Код Failling:

MySQLHelper.ExecuteNonQuery(
ConfigurationManager.AppSettings["ConnectionString"],
CommandType.Text,
sqlQuery,
sqlParams);

sqlQuery - это запрос типа "select * from table". sqlParams здесь не имеет отношения.

Другая проблема заключается в том, что моя компания использует MySQLHelper, и у меня нет видимости над ней (есть только DLL для вспомогательной библиотеки). Он отлично работает в других проектах, поэтому я на 99% ошибся.

Я думаю, если нет способа отладки, не видя кода, мне придется подождать, чтобы связаться с человеком, который создал этот помощник, чтобы получить код.

4b9b3361

Ответ 1

Ссылка на строку подключения должна быть выполнена следующим образом:

MySQLHelper.ExecuteNonQuery(
ConfigurationManager.ConnectionStrings["MyDB"].ConnectionString,
CommandType.Text,
sqlQuery,
sqlParams);

ConfigurationManager.AppSettings["ConnectionString"] будет выглядеть в AppSettings для чего-то с именем ConnectionString, которого он не найдет. Вот почему ваше сообщение об ошибке показало "ConnectionString" property has not been initialized, потому что оно ищет инициализированное свойство AppSettings с именем ConnectionString.

ConfigurationManager.ConnectionStrings["MyDB"].ConnectionString указывает на строку подключения с именем "MyDB".

Вот кто-то говорит об использовании строк подключения web.config

Ответ 2

Вы получаете эту ошибку, когда источник данных пытается связать данные, но не может, потому что не может найти строку подключения. По моему опыту, это обычно не связано с ошибкой в ​​web.config(хотя я не уверен на 100%).

Если вы программно назначаете источник данных (например, SqlDataSource) или создаете запрос (т.е. используя комбинацию SqlConnection/SqlCommand), убедитесь, что вы назначили ему ConnectionString.

SqlConnection myCon = new SqlConnection(ConfigurationManager.ConnectionStrings[nameOfString].ConnectionString;

Если вы подключаете элемент привязки данных к источнику данных (т.е. GridView или ComboBox к SqlDataSource), убедитесь, что источник данных назначен одной из строк подключения.

Отправьте свой код (чтобы элемент данных и web.config были в безопасности), и мы можем взглянуть на него.

РЕДАКТИРОВАТЬ: Я думаю, проблема в том, что вы пытаетесь получить строку подключения из области AppSettings и программно не там, где она существует. Попробуйте заменить это с помощью ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString (если ConnectionString - это имя вашей строки подключения.)

Ответ 3

Строка подключения не в AppSettings.

То, что вы ищете, находится в:

System.Configuration.ConfigurationManager.ConnectionStrings["MyDB"]...

Ответ 4

Используйте [] вместо(), как показано ниже.

SqlDataAdapter adapter = new SqlDataAdapter(sql, ConfigurationManager.ConnectionStrings["FADB_ConnectionString"].ConnectionString);
            DataTable data = new DataTable();
            DataSet ds = new DataSet();

Ответ 5

Просто в коде позади страницы используйте: -

SqlConnection con = new SqlConnection("Data Source = DellPC; Initial Catalog = Account; user = sa; password = admin");

Это должно работать просто отлично