C# - “用户'用户名登录失败'(SQL Server 2014)

时间:2018-01-03 06:08:20

标签: c# sql-server

我正在尝试使用我的C#代码连接到SQL Server 2014

<connectionStrings>
    <add name="ConnectionString" 
         connectionString="Data Source=IP\\SQLNameSERVER,1433;Network Library=DBMSSOCN; Initial Catalog=MyDB; User ID=Username; Password=password;"/>
</connectionStrings>

string ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;

using (SqlConnection cn = new SqlConnection(ConnectionString))
{
     query = "SELECT * FROM [MyTable]";

     using (SqlCommand commandUserPortal = new SqlCommand(query, cn))
     {
         cn.Open();
     }
  }

但是我收到一条错误消息:

  

用户'用户名'登录失败。

当我使用相同的凭据通过SQL Server Management Studio连接到数据库时,它可以正常工作而没有任何问题。

用户拥有db_datareader权限。

我也试过

<connectionStrings>
    <add name="ConnectionString" 
         connectionString="Data Source=IP\\SQLNameSERVER,1433;Network Library=DBMSSOCN; Initial Catalog=MyDB; User ID=Username; Password=password;
         providerName="System.Data.SqlClient"/>
</connectionStrings>

4 个答案:

答案 0 :(得分:4)

使用Visual Studio中的Add connection使用准确的连接字符串。

如何: -

按照下一个屏幕截图: -

1)查看&gt;&gt;服务器资源管理器

enter image description here

2)添加连接

enter image description here

3)选择数据源&gt;&gt; SQL Server

enter image description here

4)输入Server NameSQL Server authentication,输入usernamepassword,然后选择database

enter image description here

5)点击Test Connection按钮。

enter image description here

6)您创建的连接将在此处添加

enter image description here

7)右键单击并选择properties

enter image description here

8)最后复制并粘贴连接字符串并使用并用密码替换星号(********)

答案 1 :(得分:1)

尝试为您的数据库更改sql server中的设置。同时允许sql和windows身份验证。对于带图像的步骤,请检查here。我希望您不使用Windows身份验证,并且您的网络也可以访问数据库服务器。其他一切对我来说都很好。

答案 2 :(得分:0)

尝试更改连接字符串:

<add name="ConnectionString" connectionString="Data source=IP\SQLNameSERVER;Initial Catalog=DBname;User=Username;Password=Password; connection timeout=6000;" />

还尝试更改您的代码:

从:

using (SqlConnection cn = new SqlConnection(ConnectionString))
{
     query = "SELECT * FROM [MyTable]";

     using (SqlCommand commandUserPortal = new SqlCommand(query, cn))
     {
         cn.Open();
     }
  }

为:

using (SqlConnection cn = new SqlConnection(ConnectionString))
{
     query = "SELECT * FROM [MyTable]";
     cn.Open();
     using (SqlCommand commandUserPortal = new SqlCommand(query, cn))
     {

     }
  }

答案 3 :(得分:0)

使用以下作为连接字符串

<add name="DefaultConnection" connectionString="data source=192.168.0.1; initial catalog=DBNAME;persist security info=True;user id=UserId;password=Password;MultipleActiveResultSets=True ; Connect Timeout=10000" providerName="System.Data.SqlClient" />

替换目录中的数据库名称,用户ID中的用户ID和密码中的passeord