我有一个连接到数据库的.NET应用程序。
在我的web.config
文件中
<connectionStrings>
<add name="TFOUNDATION"
connectionString="Data Source=TAPOLCISQL01;Initial Catalog=TapolciFoundation;Persist Security Info=True;User ID=XXXX;Password=XXXXX"
providerName="System.Data.SqlClient"/>
</connectionStrings>
删除了用户名和密码。
在我的代码后面,我打开这样的连接
protected void grabData()
{
SqlCommand cmd = new SqlCommand("SELECT FirstName FROM CauseMarketers", new SqlConnection(ConfigurationManager.ConnectionStrings["TFOUNDATION"]));
}
我收到的错误是
最佳重载方法匹配&#34; System.Data.SQLClient.SQLConnection.SQLConnection(string)&#34;有一些无效的论点。
我不确定我在这里做错了什么。
答案 0 :(得分:7)
您需要在您获取的配置中使用.ConnectionString
属性:
protected void grabData()
{
// use the .ConnectionString property to get the connection string!
string connStr = ConfigurationManager.ConnectionStrings["TFOUNDATION"].ConnectionString;
SqlCommand cmd = new SqlCommand("SELECT FirstName FROM CauseMarketers", new SqlConnection(connStr));
}
答案 1 :(得分:0)
每当我打开数据库连接时,总是会提示我在其上调用ToString()
。
您是否尝试过ConfigurationManager.ConnectionStrings["TFOUNDATION"].ToString();
答案 2 :(得分:0)
删除“Persist Security Info = True;”可以解决这个问题。请试试。
答案 3 :(得分:0)
为什么要使用&#39;持久安全信息&#39; ?
ConnectionString类似于OLE DB连接字符串,但不完全相同。与OLE DB或ADO不同,返回的连接字符串与用户设置的ConnectionString相同,如果Persist Security Info值设置为false(默认值),则减去安全信息。除非将Persist Security Info设置为true,否则SQL Server的.NET Framework数据提供程序不会在连接字符串中保留或返回密码。
来源:MSDN Article about SqlConnection
此网站包含您需要了解的有关连接字符串的所有信息,以及使用哪一个以及connectionstrings.com的方式,此页面是关于您使用的提供商System.Data.SqlClient.SqlConnection
标准安全 Server = myServerAddress; Database = myDataBase; User Id = myUsername; 密码= MYPASSWORD;
因此,请尝试删除&#39;持久保密信息&#39;并更改初始目录&#39;到数据库&#39;。