我正在用asp.net和VB.NET编写一个网络工具。我的客户指示我使用web.config文件来保存数据库连接字符串(而不是使用全局变量,我到现在为止一直在这样做)。
网上的大部分帮助都同意这样做,但有一些小的差异。在web.config文件中。
<configuration>
<connectionStrings>
<add name="MyConn"
connectionString="Provider=SQLOLEDB;Data Source=MyServer;
Initial Catalog=DBName;Persist Security Info=True;User ID=MyUser;
Password=MyPass"
providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
在我的代码后台页面中,
Imports System.Configuration
Dim conn as String
conn =
ConfigurationManager.ConnectionStrings["MyConn"].ConnectionStrings
我看过的论坛都认为这在vb或C#中都能用。但在我的代码后台,我得到的错误是 "类型为'System.Configuration.ConnectionStringSettingsCollection'的值不能转换为'String'"。如果我把连接字符串改成一个对象。
Dim conn as object
那么错误就会消失,但我不认为这能解决问题。谁能告诉我为什么上面的代码不能渲染我的web.config文件中的字符串?根据多个论坛的说法,这应该是可行的。
谢谢你的帮助。
EDIT:
我试过用 "ConnectionString"(去掉最后的 "s")结尾,这在网上的帮助中是有的--结果一样。我在我的代码中留下了最后的's',因为微软的'Intellesense'会把它放在那里,但无论哪种方式都会给我同样的结果。
进一步的编辑。
当我把conn改成 "对象 "类型时,我的代码告诉我 "Identifier Expected",而["MyConn"]就在那里。似乎有什么地方出了问题,尽管一些在线资源告诉我这是正确的。
再次感谢。
conn =
ConfigurationManager.ConnectionStrings["MyConn"].ConnectionStrings
必须是(注意VB.NET的风格)。
conn =
ConfigurationManager.ConnectionStrings("MyConn").ConnectionString
而这将返回一个字符串。
前面指的是,但我发现在页面顶部有必要添加以下内容。
Imports System.Data
Imports System.Data.SqlClient
还包括'.ToString'。
Dim conn As String = ConfigurationManager.ConnectionStrings("MyConn").ConnectionString.ToString