Как написать строку подключения в файле web.config и прочитать ее?

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

<connectionStrings>
  <add name="Dbconnection" connectionString="Server=localhost; 
       Database=OnlineShopping ; Integrated Security=True"/>
</connectionStrings >

и прочитайте его следующим образом:

string strcon = 
    ConfigurationManager.ConnectionStrings["Dbconnection"].ConnectionString;
SqlConnection DbConnection = new SqlConnection(strcon);

при запуске программы я получаю сообщение об ошибке из-за нулевой ссылки. но когда я использую этот код:

SqlConnection DbConnection = new SqlConnection();
DbConnection.ConnectionString = 
    "Server=localhost; Database=OnlineShopping ; Integrated Security=True";

Я не получаю ошибок и программа работает правильно! В чем проблема?

Ответ 1

Добавить ссылку для добавления System.Configuration: -

System.Configuration.ConfigurationManager.
    ConnectionStrings["connectionStringName"].ConnectionString;

Также вы можете изменить файл WebConfig для включения имени поставщика: -

<connectionStrings>
  <add name="Dbconnection" 
       connectionString="Server=localhost; Database=OnlineShopping;
       Integrated Security=True"; providerName="System.Data.SqlClient" />
</connectionStrings>

Ответ 2

Web.config:

<connectionStrings>
    <add name="ConnStringDb" connectionString="Data Source=localhost;
         Initial Catalog=DatabaseName; Integrated Security=True;" 
         providerName="System.Data.SqlClient" />
</connectionStrings>

С# code:

using System.Configuration;
using System.Data

SqlConnection _connection = new SqlConnection(
          ConfigurationManager.ConnectionStrings["ConnStringDb"].ToString());

try
{
    if(_connection.State==ConnectionState.Closed)
        _connection.Open();
}
catch { }

Ответ 3

Вы уверены, что ваш файл конфигурации (web.config) находится в нужном месте, и строка подключения действительно находится в (сгенерированном) файле? Если вы публикуете свой файл, содержимое web.release.config может быть скопировано.

Конфигурация и доступ к строке Connection выглядит мне прав. Я всегда добавлял имя поставщика

<connectionStrings>
  <add name="Dbconnection" 
       connectionString="Server=localhost; Database=OnlineShopping; 
       Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>

Ответ 4

попробуйте это

var configuration = WebConfigurationManager.OpenWebConfiguration("~");
var section = (ConnectionStringsSection)configuration.GetSection("connectionStrings");
section.ConnectionStrings["MyConnectionString"].ConnectionString = "Data Source=...";
configuration.Save();

Ответ 5

Попробуйте использовать WebConfigurationManager вместо ConfigurationManager

Ответ 6

Попробуйте После открытия файла web.config в приложении и добавления примера db-соединения в разделе connectionStrings, как это

<connectionStrings>
<add name="yourconnectinstringName" connectionString="Data Source= DatabaseServerName; Integrated Security=true;Initial Catalog= YourDatabaseName; uid=YourUserName; Password=yourpassword; " providerName="System.Data.SqlClient"/>
</connectionStrings >