我知道这可能是一个非常基本的问题,但也许这就是为什么我找不到答案的问题。现在我通过这样的方式在我的源文件中创建数据库连接:
SqlConnection con = new SqlConnection("Data Source=...Password=...);
SqlCommand cmd = new SqlCommand(String.Format("SELECT * FROM Table;"), con);
con.Open();
SqlDataReader reader = cmd.ExecuteReader();
但这意味着如果我选择更改数据库,那将是一个很大的痛苦。你们知道如何使用web.config文件中的连接字符串吗?
谢谢!
答案 0 :(得分:46)
SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionStringNameFromWebConfig"].ConnectionString);
确保您的网站引用了System.Configuration,否则无法使用。
文档可以How to: Read Connection Strings from the Web.config File找到,代码示例
答案 1 :(得分:7)
你可以尝试
var conString = System.Configuration.
ConfigurationManager.ConnectionStrings["connectionStringName"];
string strConnString = conString.ConnectionString;
SqlConnection con = new SqlConnection(strConnString);
答案 2 :(得分:5)
在你的app.config(或web.config)中:
<configuration>
<connectionStrings>
<add name="MainConnectString" connectionString="yourConnectionString" providerName="providerName" />
</connectionStrings>
</configuration>
在代码中:
string connectionString = ConfigurationManager.ConnectionStrings["MainConnectString"];
答案 3 :(得分:2)
以及StackOverflowException的响应,请确保将使用System.Configuration; 添加到您的代码页面
答案 4 :(得分:1)
您可以使用EnterpriseLibrary。
using Microsoft.Practices.EnterpriseLibrary.Data;
然后创建一个获取连接字符串的方法:
public static string GetConnectionString()
{
Database YourData = DatabaseFactory.CreateDatabase("someconnectionname");
return YourData .ConnectionString;
}
在您的web.config中,您将拥有以下内容:
<connectionStrings>
<add name="someconnectionname" connectionstring=..... />
</connectionString>
答案 5 :(得分:0)
如果你得到“无法将类型'system.configuration.connectionstringsettings'隐式转换为'string'”,请执行:
string connectionString = ConfigurationManager.ConnectionStrings["MainConnectString"].ConnectionString;