不确定为什么会失败......我确定这是我的错。任何帮助将不胜感激。
我正在获得经典
无法打开登录请求的数据库“Northwind”。 登录失败。用户'MyMachine \ MyUserName'登录失败。
我可以通过SQL Server Management Studio使用Windows身份验证登录。
我检查了SQL Server Management Studio以确保我的用户有权使用Northwind数据库。我还试着在stackoverflow上发布这个问题的大多数其他回复。
这是我的代码:
SqlConnection dataConnection = new SqlConnection();
try
{
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
builder.DataSource = ".\\SQLExpress";
builder.InitialCatalog = "Northwind";
builder.IntegratedSecurity = true;
dataConnection.ConnectionString = builder.ConnectionString;
dataConnection.Open();
...
我正在使用SQL Server 2008 Express
答案 0 :(得分:1)
Security
并选择SQL Server and Windows Authencation mode
然后重新启动服务器。
。转到安全性文件夹并创建新的登录
输入用户名和密码。只需取消选中Enforced Security
(仅用于测试目的)
转到用户映射并检查要在新登录帐户下处理的数据库(NorthWind),然后检查db_accessadmin
点击OK
并尝试使用您的代码
SqlConnection dataConnection = new SqlConnection();
try
{
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
builder.DataSource = "UNKNOWN01-PC\\SQLEXRESS2008R2";
builder.InitialCatalog = "Northwind";
//builder.IntegratedSecurity = true;
builder.UserID = "testlogin";
builder.Password = "1234";
dataConnection.ConnectionString = builder.ConnectionString;
dataConnection.Open();
}
catch (Exception)
{
throw;
}
我怀疑这里的真正问题是
SqlConnectionStringBuilder
,但我无法解释。我只是一个初学者。 :)
答案 1 :(得分:1)
我只是写这个,以便我不会一次又一次陷入同一个陷阱......数据库的默认名称是" NORTHWND"而不是" NORTHWIND" 该名称由Windows sql server自动创建,同时从官方站点导入.bak文件。 所以这没关系
static string connectionString = "data source=GMDESK028\\SQLSERVER2;initial catalog=NORTHWND;Integrated Security=SSPI;";
答案 2 :(得分:0)
尝试这样做,它总是对我有用,也更简单,因为您可以直接从连接字符串创建一个新的SQL连接对象,只需将字符串指定为参数,如下所示:
string connectionString = @"Server=server\instance;Database=Northwind;Integrated Security=True";
SqlConnection dataConnection = new SqlConnection(connectionString);
try
{
dataConnection.Open();
}
catch (sqlexception e)
{
Messagebox.Show("Error");
}