从app.config VB.NET中提取连接字符串时,nullreferenceexception未处理

时间:2011-08-03 04:29:52

标签: vb.net connection-string app-config nullreferenceexception

自从昨天晚上以来,我一直在努力使用app.config而不是硬编码进行连接,我要么在网上找不到任何更多的信息,要么帮助我,或者我太新了,无法理解这一切。

在将connectionstring赋值为'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 :(得分:0)

问题是方法变量con未设置为与ConnectionStringSettingsCollection中的值对应的值。

如果调用GetConnectionStringByName的代码将con设置为字符串“con”,则应该没问题,因为“con”是ConnectionStringSettingsCollection的成员。

答案 1 :(得分:0)

在最初的问题示例中,我没有像获取连接字符串那样创建函数,而是最终改变了一些东西。

我的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"))