2012-06-21 3 views
14

Я уверен, что в этом коде есть быстрая и легкая ошибка, но почему-то я провел последние 2 часа с этим и не смог его решить.Получите ConnectionString из app.config

App.config:

<configuration> 
    <connectionStrings> 
    <add name="BO" 
     connectionString="Data Source=MyServer;Initial Catalog=BO;User ID=WebUser;Password=MyPasswd" 
     providerName="System.Data.SqlClient" /> 
    </connectionStrings> 
</configuration> 

Class.cs:

string connectionString = getNewConnection(); 
using (SqlConnection conn = new SqlConnection(connectionString)) { code } 

Метод.

public static string getNewConnection() 
{ 
    return ConfigurationManager.ConnectionStrings["BO"].ConnectionString; 
} 

Ошибка:

Object reference not set to an instance of an object

на линии:

return ConfigurationManager.ConnectionStrings["BO"].ConnectionString; 

EDIT:

Error image, the Spanish sentence means: Object reference not set to an instance of an object

ответ

10

Оно должно быть:

ConfigurationManager.ConnectionStrings["BO"].ConnectionString; 

Edit:

Вам понадобятся соответствующие библиотеки, а если у вас нет их еще, как указано в ответах ниже, я думаю, его System.Configuration

Таким образом, в полный вы должны иметь:

public static string getNewConnection() 
{ 
    return ConfigurationManager.ConnectionStrings["BO"].ConnectionString; 
} 
+0

Исправлена ​​библиотека, это System.Configuration –

+0

, если я использую «ConnectionStringSettingsCollection connections = ConfigurationManager.ConnectionStrings [" BO "]. ConnectionString;" Я получаю сообщение об ошибке «Невозможно неявно преобразовать тип« строка »в« System.Configuration.ConnectionStringSettingsCollection »« –

+0

Вам не нужно это делать, в вашей функции getNewConnection() просто «return ConfigurationManager.ConnectionStrings [« BO »]. ConnectionString; ' –

1

вы использовали WebConfigurationManager?

string MyConnectionString = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["BO"].ConnectionString; 
+0

говорит, что System.Web не контактирует. Конфигурация и т. Д. (Я добавил с использованием System.Web) –

2

Используйте эти коды в классе:

class Connection 
    { 
     public static string con 
     { 
      get 
      { 
       return System.Configuration.ConfigurationManager.ConnectionStrings["sql"].ConnectionString; 
      } 
     } 
    } 
+0

, он дает мне ту же ошибку (теперь ссылаясь на вашу строку кода). Был бы неправильный app.config? –

0

Добавить ссылку на System.Configuration.dll, и вы должны быть в состоянии использовать System.Configuration.ConfigurationManager.

Смежные вопросы