我刚刚开始使用SQL Server Express,其语法与任何其他版本的SQL Server相同,但是,我使用我的web.config
文件来创建连接字符串并连接我的代码但我继续得到一个错误
类型' System.Data.SqlClient.SqlException'的异常发生在System.Data.dll中但未在用户代码中处理
附加信息:无法打开数据库" TestSQL"登录请求。登录失败。
这是我的语法,我正在使用Windows身份验证。如果我使用此信息登录服务器本身,我可以查询,但通过语法访问它不起作用。一旦我的con.Open()
行被击中,就会抛出错误。
web.config
:
<connectionStrings>
<add name="SQLServer"
connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=TestSQL;User ID=windowslogin; password=windowspassword; Integrated Security=True;"
providerName="System.Data.SqlClient"/>
</connectionStrings>
C#代码:
public DataSet GetItems()
{
connectionstring = ConfigurationManager.ConnectionStrings["SQLServer"].ConnectionString;
using (SqlConnection con = new SqlConnection(connectionstring))
{
con.Open();
using (SqlCommand command = new SqlCommand("Select [field1] from [TestSql].[dbo].[Table1]", con));
con.Close();
}
}
修改:
我更新了我的web.config
文件以获得这行代码,现在它呈现了如下所示的新错误。此外,我使用UltiDev Web App Explorer来托管不是IIS
web.config
:
<system.web>
<identity impersonate="true" userName="windowsusername" password="windowspassword" /?
</system.web>
新错误是:
其他信息:用户登录失败&#39; <#39;。
答案 0 :(得分:4)
使用IntegratedSecurity
时无法传递用户名和密码,没有它就无法使用“windows”用户帐户。您需要使用SQL登录(这在SQL Express中可能但不容易)或运行asp.net站点(或impersonate)对数据库具有适当权限的用户。