无法打开数据库' dbTest'登录请求。登录失败。用户' testUser'登录失败

时间:2018-04-21 16:49:45

标签: c# sql-server database database-connection ssms

为什么我会收到错误

  

登录失败

来自这段代码?

try
{
    string connectionString;
    SqlClient.SqlDataAdapter dataAdapter;
    SqlClient.SqlConnection connection;

    DataSet dataSet = new DataSet();
    connectionString = "Server=IP,PORT;Database=dbTest;Integrated Security=False;User ID=testUser;Password=XXXXXX;";

    connection = new SqlClient.SqlConnection(connectionString);
    connection.Open();

    dataAdapter = new SqlClient.SqlDataAdapter(sqlQuery, connection);
    dataSet = new DataSet();
    dataAdapter.Fill(dataSet, "tblTest");

    dataSet.Dispose();
    dataAdapter.Dispose();
}
catch (Exception ex)
{
    MessageBox.Show(ex.Message);
}

它适用于本地数据库,但是对于远程数据库,它会抛出"登录失败"错误。

注1 :我可以使用SQL Server Management Studio使用此用户标识和密码登录服务器。

注2 :以下代码有效,但为什么和有什么区别?

try
{
    DbProviderFactory factory = DbProviderFactories.GetFactory(providerName);

    DbConnection connection = factory.CreateConnection();
    connection.ConnectionString = "Server=IP,PORT;Database=dbTest;Integrated Security=False;User ID=testUser;Password=XXXXXX;";

    using (connection)
    {
        DbCommand command = factory.CreateCommand();
        command.CommandText = sqlQuery;
        command.Connection = connection;

        DbDataAdapter dataAdapter = factory.CreateDataAdapter();
        dataAdapter.SelectCommand = command;

        DataTable dataTable = new DataTable();
        dataAdapter.Fill(dataTable);
    }
}
catch (Exception ex)
{
    MessageBox.Show(ex.Message);
}

3 个答案:

答案 0 :(得分:0)

请在您的连接变量中提供提供商名称。

connectionString = "Server=IP,PORT;Database=dbTest;Integrated Security=False;" + 
                   "User ID=testUser;Password=XXXXXX;providerName="System.Data.SqlClient";

答案 1 :(得分:0)

  

它与本地数据库完美配合,但使用远程db throw登录   失败的错误。

您的SQL Server上的远程连接似乎有问题。

请查看下一个链接:

https://knowledgebase.apexsql.com/configure-remote-access-connect-remote-sql-server-instance-apexsql-tools/

https://www.youtube.com/watch?v=5UkHYNwUtCo

答案 2 :(得分:0)

似乎问题只是连接字符串。当我把它改为:

connectionString = "Data Source=IP;Initial Catalog=dbTest;Integrated Security=false;User ID=testUser;Password=XXXXXX;"

,问题解决了。

相关问题