【问题标题】:nullreferenceexception was unhandled while pulling connection string from app.config VB.NET从 app.config VB.NET 中提取连接字符串时未处理 nullreferenceexception
【发布时间】:2011-10-18 19:07:03
【问题描述】:

自昨天晚上以来,我一直在努力使用 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>

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的回复。在这方面我还是个新手。我无法通过将 con 设置为字符串“con”来弄清楚你的意思,但我最终设法通过直接作为 sqlconnection 来解决它。我想我高估了这一切的复杂性。
    • @Reggie 很高兴您找到了解决方案。我的意思是函数参数con 需要设置为“con”,如下所示:Call GetConnectionStringByName("con")
    【解决方案2】:

    我没有像我最初的问题示例那样创建一个用于获取连接字符串的函数,而是做了一些改动。

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

    【讨论】:

      猜你喜欢
      • 2013-03-04
      • 2011-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-16
      • 2012-10-07
      相关资源
      最近更新 更多