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