2013-08-25 4 views
11

Я пытаюсь написать строку подключения к 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

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

+3

Вам не нужен WebConfigurationManager, чтобы прочитать строку соединения. – slfan

10

Добавить ссылку добавить 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> 
+1

это сработало для меня. благодаря! – UniCoder

2

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

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

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

Конфигурация и доступ к Строке подключения выглядят мне все хорошо. Я всегда добавить ProviderName

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

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 { } 
1

Попробуйте После открытия файла 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 >