Как записать строку подключения в файл 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";
Я не получаю никакой ошибки, и программа работает правильно! В чем проблема?
8 ответов
Добавить ссылку, чтобы добавить 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>
Web.config:
<connectionStrings>
<add name="ConnStringDb" connectionString="Data Source=localhost;
Initial Catalog=DatabaseName; Integrated Security=True;"
providerName="System.Data.SqlClient" />
</connectionStrings>
код C#:
using System.Configuration;
using System.Data
SqlConnection _connection = new SqlConnection(
ConfigurationManager.ConnectionStrings["ConnStringDb"].ToString());
try
{
if(_connection.State==ConnectionState.Closed)
_connection.Open();
}
catch { }
Вы уверены, что ваш файл конфигурации (web.config) находится в нужном месте, а строка подключения действительно находится в (сгенерированном) файле? Если вы публикуете свой файл, содержимое web.release.config может быть скопировано.
Конфигурация и доступ к строке подключения выглядит хорошо для меня. Я бы всегда добавил имя провайдера
<connectionStrings>
<add name="Dbconnection"
connectionString="Server=localhost; Database=OnlineShopping;
Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>
Попробуйте этоПосле того, как откройте файл web.config в приложении и добавьте пример подключения к базе данных в разделе connectionStrings, как это
<connectionStrings>
<add name="yourconnectinstringName" connectionString="Data Source= DatabaseServerName; Integrated Security=true;Initial Catalog= YourDatabaseName; uid=YourUserName; Password=yourpassword; " providerName="System.Data.SqlClient"/>
</connectionStrings >
Попробуй это
var configuration = WebConfigurationManager.OpenWebConfiguration("~");
var section = (ConnectionStringsSection)configuration.GetSection("connectionStrings");
section.ConnectionStrings["MyConnectionString"].ConnectionString = "Data Source=...";
configuration.Save();
Попробуй использовать WebConfigurationManager
вместо ConfigurationManager
Два способа добавления строки подключения
если вы настроили имя экземпляра при установке mssql, обязательно укажите правильное имя экземпляра в файле web.config.
- откройте файл web.config
После открытия файла web.config в приложении добавьте пример соединения с БД в разделе connectionStrings, например:
<connectionStrings>
<add name="yourconnectinstringName" connectionString="Data Source= DatabaseServerName; Integrated Security=true;Initial Catalog= YourDatabaseName; uid=YourUserName; Password=yourpassword; " providerName="System.Data.SqlClient" />
</connectionStrings>
Объявление строки подключения в файле web.config:
<add name="dbconnection" connectionString="Data Source=Soumalya;Integrated Security=true;Initial Catalog=MySampleDB" providerName="System.Data.SqlClient" />
Для доступа к серверу базы данных не требуется имя пользователя и пароль. Теперь напишите код, чтобы получить строку подключения из файла web.config в нашем файле codebehind. Добавьте следующее пространство имен в файл codebehind.
using System.Configuration;
Это пространство имен используется для получения сведений о разделе конфигурации из файла web.config.
using System;
using System.Data.SqlClient;
using System.Configuration;
public partial class _Default: System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e) {
//Get connection string from web.config file
string strcon = ConfigurationManager.ConnectionStrings["dbconnection"].ConnectionString;
//create new sqlconnection and connection to database by using connection string from web.config file
SqlConnection con = new SqlConnection(strcon);
con.Open();
}
}