C# 本地SqlServer 2016-登录失败
你能帮我吗?我需要连接到SqlServer 2016上的本地数据库,但当我尝试打开连接时,出现了此错误。我不尝试其他登录方式,因为我不记得密码(我总是使用windows auth。) 其他信息:无法打开请求的数据库“My_Project” 通过登录。登录失败 用户“DESKTOP-C448DNE\Denis”登录失败 以下是我使用的c代码:C# 本地SqlServer 2016-登录失败,c#,.net,sql-server,database-connection,C#,.net,Sql Server,Database Connection,你能帮我吗?我需要连接到SqlServer 2016上的本地数据库,但当我尝试打开连接时,出现了此错误。我不尝试其他登录方式,因为我不记得密码(我总是使用windows auth。) 其他信息:无法打开请求的数据库“My_Project” 通过登录。登录失败 用户“DESKTOP-C448DNE\Denis”登录失败 以下是我使用的c代码: public class DbHelper { public SqlConnection Connection { get; private set
public class DbHelper
{
public SqlConnection Connection { get; private set; }
public string Language { get; set; }
public DbHelper()
{
Connection = new SqlConnection();
Language = "en";
}
public bool Connect(string conString)
{
if (Connection.State != ConnectionState.Open)
{
Connection.ConnectionString = conString;
Connection.Open();
}
return true;
}
public bool Connect()
{
string connString = "Data Source=(localdb)\\MSSQLLocalDB; Initial Catalog = My_Project; Integrated Security=true;";
return Connect(connString);
}
public void Close()
{
Connection.Close();
}
public int ExecuteNonQuery(SqlCommand sqlCommand)
{
int rowNumber = 0;
try
{
rowNumber = sqlCommand.ExecuteNonQuery();
}
catch (Exception e)
{
throw e;
}
return rowNumber;
}
}
这里我使用这个类:
...
private DbHelper _db;
public SqlEmployeeMapper()
{
_db = new DbHelper();
}
public int Create(Employee entity)
{
var conn = _db.Connect();
string queryString = "insert into \"employees\" (first_name, last_name, email, phone_number, password, city, address, holiday, role_id, departmant_id)" +
"values(@first_name, @last_name, @email, @phone_number, @password, @city, @address, @holiday, @role_id, @departmant_id);";
SqlCommand command = new SqlCommand(queryString);
PrepareCommand(command, entity);
var id = _db.ExecuteNonQuery(command);
_db.Close();
return id;
}
...
编辑:
我尝试在VS2015中打开服务器资源管理器并单击“添加连接”。。。我输入“(localdb)\MSSQLLocalDB”作为服务器名称,当我打开数据库下拉列表时,看不到我的数据库您在使用Visual Studio吗?如果是这样,您能否在服务器资源管理器中创建一个成功进行身份验证的连接?SQL Local Db的实例有一个名称和一个名为pipe的实例。使用4.0.2以下的.Net时,必须通过命名管道进行连接。从: 如果应用程序使用4.0.2之前的.NET版本,则必须直接连接到LocalDB的命名管道。实例管道名称值是LocalDB实例正在侦听的命名管道。每次启动LOCALDB实例时,LOCALDB#后面的实例管道名称部分都会更改。要使用SQL Server Management Studio连接到LocalDB实例,请在“连接到数据库引擎”对话框的“服务器名称”框中键入实例管道名称。从自定义程序中,您可以使用类似于SqlConnection conn=new SqlConnection(@“Server=np:\。\pipe\LocalDB\F365A78E\tsql\query)的连接字符串建立到LocalDB实例的连接 与名称不同,每次重新启动实例时,命名管道都会更改。查找当前命名管道的一种方法是通过命令行
SQLLocalDb i MSSQLLocalDb
如果实例已停止,则需要启动它。启动实例将生成命名管道。五分钟或更长时间没有连接将停止实例
SQLLocalDb s MSSQLLcoalDb
有关命令行的更多信息,请查看,同样取自MSDN
我不确定中的重大更改是否会消除通过命名管道进行连接的需要。是否安装了SSM?如果是这样,你能通过它连接吗?听起来你需要为你的WIndows创建一个登录名account@destination-数据是SSMS工作fine@stuartd你是说:?是的,
CREATE LOGIN…FROM WINDOWS
但是如果您可以通过SSMS登录并查看数据库,您必须已经有访问权限。这不是问题的答案,应该是您的连接字符串使用的注释“(localdb)”,它使用localdb安装。如果安装了包含目标数据库的SQL Server 2016,则无法使用(localdb)找到它。看见假设您的SQL 2016实例名为MSSQLLocalDB,请尝试直接连接到它,而不使用(localdb)“其他信息:建立与SQL Server的连接时发生与网络相关或特定于实例的错误。找不到服务器或无法访问服务器。验证实例名称是否正确,以及SQL“我使用.net 4.5:/