我无法通过C#连接到我的数据库,这使我发疯。
我知道我的凭据很好,因为我可以使用它们打开SQLServerMangement并查询数据库。
我总是登录失败!
我正在尝试使用许多不同的连接字符串,但没有任何效果。
-> System.Data.SqlClient.SqlException(0x80131904):用户登录失败
var connectionStrings = new List<string>();
connectionStrings.Add("Data Source=myserver;Initial Catalog=mycatalog;User ID=myuser;Password=mypassword");
connectionStrings.Add("Data Source=myserver;Initial Catalog=mycatalog;User ID=mydomain/myuser;Password=mypassword");
connectionStrings.Add("Data Source=myserver;Initial Catalog=mycatalog;User ID=mydomain\\myuser;Password=mypassword");
connectionStrings.Add("Data Source=myserver;Initial Catalog=mycatalog;User ID=mydomain\\\\myuser;Password=mypassword");
connectionStrings.Add("Data Source=myserver;Initial Catalog=mycatalog;User ID=mydomain//myuser;Password=mypassword");
connectionStrings.Add("Data Source=myserver;Initial Catalog=mycatalog;User ID=mydomain\\myuser;Password=mypassword");
foreach (var con in connectionStrings)
{
SqlConnection cnn ;
cnn = new SqlConnection(con);
try
{
cnn.Open();
Console.WriteLine("Connection Open !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ");
cnn.Close();
}
catch (Exception ex)
{
Console.WriteLine("Can not open connection ! ");
//Console.WriteLine(ex.ToString());
}
}
答案 0 :(得分:4)
mydomain\myuser
尝试表明您可能正在使用集成安全性或Trusted_Connection。在这种情况下,连接字符串如下所示:
Server=myserver;Database=mycatalog;Trusted_Connection=True;
或这个
Server=myserver;Initial Catalog=mycatalog;Integrated Security=True;
这里没有允许您指定用户名或密码的组合。如果要使用用户名/密码,则必须设置sql身份验证并创建一个单独的sql帐户。除了以建立连接的用户身份运行程序之外,您无法手动指定Active Directory或Windows登录凭据来连接数据库。
答案 1 :(得分:1)
正确的方式是
connectionStrings.Add("Data Source=myserver;Initial Catalog=mycatalog;User ID=myuser;Password=mypassword");
此外,您可以选中https://www.connectionstrings.com/ https://www.connectionstrings.com/sql-server/
最后,检查服务器是否发布了端口1433,也许您尝试远程连接服务器并且该端口已被防火墙阻止,或者该端口被禁用以进行远程连接。 (并且您只能使用Pipe或Message Exchange在本地连接)。 检查“ SQL Server配置管理器”