protected DataTable GetData(string Query)
{
DataTable data = new DataTable();
try
{
strConnectionString = "data source=(local);Integrated Security=True;initial catalog=ps_erdb;";
string Query = "Select ErdbBuildNumbereMinor from DBVersion";
using (sqlConnection = new SqlConnection(strConnectionString))
{
sqlConnection.Open();
SqlCommand cmd = sqlConnection.CreateCommand();
cmd.CommandTimeout = intConnectionTimeout;
cmd.CommandText = Query;
data.Load(cmd.ExecuteReader());
sqlConnection.Close();
}
return data;
}
catch (Exception ex)
{
}
return data;
}
上面的代码返回错误
无法打开数据库" ps_erdb"登录请求。登录 失败。用户' MIG3-ESVTB \ HPSInstall'登录失败。
但是当我通过上面的登录手动打开SQL Server Management Studio时,我能够连接到数据库并执行查询。
答案 0 :(得分:0)
有几种可能性:
您在本地客户端上登录的是哪些用户?你的联系 string表示您正在使用集成安全性,因此应用程序将使用 将当前登录的凭据提供给SQL Server。为了帮助诊断, 确保为失败的&成功 登录。当您从SSMS连接并运行SELECT suser_name()时,它返回什么?
数据库是否设置为multi_user模式(默认)或single_user 模式?有人可能已将其更改为single_user。这允许 第一个也只有一个连接。所有后续尝试都将失败。如果它处于单用户模式,只需从SSMS运行ALTER DATABASE ps_erdb SET MULTI_USER
当您通过SSMS登录时,您是否能够从中查询数据? ps_erdb数据库?如果没有,请确保已映射数据库用户 到'MIG3-ESVTB \ HPSInstall'登录以及授予用户的适当权限(不是登录)。