исключение nullreferenceexception не обрабатывалось при извлечении строки подключения из app.config VB.NET - PullRequest
0 голосов
/ 03 августа 2011

Со вчерашнего вечера я боролся с подключением, используя app.config вместо жесткого кодирования, и я либо не могу найти больше информации в сети, которая помогает, либо я слишком новичок, чтобы понять все это.

Исключение происходит в строке, присваивающей строке соединения значение 'returnvalue'.

Imports System.Configuration

Imports System.Data.SqlClient

Public Class Form1

Public Shared Function GetConnectionStringByName( _
ByVal con As String) As String
    Dim returnvalue As String

    returnvalue = ConfigurationManager.ConnectionStrings(con).ConnectionString
    MessageBox.Show(returnValue)

    Return returnValue

End Function

Здесь также находится файл app.config

 <?xml version="1.0" encoding="utf-8" ?>
 <configuration>
<startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client" />
</startup>

<connectionStrings>
  <clear />
  <add name="con"  
  connectionString="Data Source=DBT07P;InitialCatalog=WeeklyDev_08012011;User Id=user;Password=Pass;"       
       providerName="System.Data.ProviderName"/>
</connectionStrings>

</configuration>

Ответы [ 2 ]

0 голосов
/ 04 августа 2011

Вместо создания функции для получения строки подключения, как в примере с моим первоначальным вопросом, я немного изменил ситуацию.

Мой XML теперь выглядит так:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="connect" value="Data Source=DBT07P;Initial Catalog=WeeklyDev_08012011;User  Id=user;Password=Pass;"/>
</appSettings>
</configuration>

и я использую «System.Configuration.ConfigurationManager.AppSettings (« connect »)» вместо того, где мои кодированные строки соединения были в моем коде.

Итак, это:

Dim returnvalue as new sqlconnection(Data Source=DBT07P;Initial Catalog=WeeklyDev_08012011;User  Id=user;Password=Pass;)

Теперь выглядит так:

Dim returnvalue As New SqlConnection(System.Configuration.ConfigurationManager.AppSettings("connect"))
0 голосов
/ 03 августа 2011

Проблема заключается в том, что для переменной метода con не установлено значение, соответствующее значению в вашей ConnectionStringSettingsCollection.

Если код, вызывающий GetConnectionStringByName, устанавливает con в строку «con», у вас все будет в порядке, поскольку «con» является членом вашей ConnectionStringSettingsCollection.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...