从app.config VB.NET提取连接字符串时未处理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 also

 <?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>

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

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

没有创建一个函数来获取连接字符串,就像我最初的问题的例子一样,我最终改变了一点。

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

相关内容

最新更新