SqlException: System.Data.SqlClient.SqlException (0x80131904)

Я написал код на C #, который отлично работает на моем компьютере с Windows 7 (MS SQL Server 2008), но не на другом с Windows Vista (MS SQL Server 2005). Не могу сменить систему на втором компьютере;) Я использую Visual Studio 2010.

Итак, это часть кода моего класса obSQL:

private SqlConnection connection;

    public obSQL(string user, string pass, string instance, string dbdir) //sql server authentication
    {
        connection = new SqlConnection();
        connection.ConnectionString = "user id=" + user + ";" +
                                      "password=" + pass +
                                      ";Data Source=" + instance + ";" +
                                      "Trusted_Connection=no;" +
                                      "database=" + dbdir + "; " +
                                      "connection timeout=3"; //more at http://www.connectionstrings.com/
        connection.Open();
    }

    public obSQL(string instance, string dbdir) //windows authentication
    {
        connection = new SqlConnection();
        connection.ConnectionString = "Data Source=" + instance + ";" +
                                      "Trusted_Connection=yes;" +
                                      "database=" + dbdir + "; " +
                                      "connection timeout=3";
        connection.Open();
    }

Он отлично работает на моем компьютере (SQL Server 2008). Но когда я запускаю тот же код на другом (SQL Server 2005), возникает ошибка (часть этого кода на другом языке, поэтому я перевел его для вас):

Когда я запускаю другую программу, которая использует ту же базу данных, она подключается правильно, поэтому я думаю, что логин и т. Д. Правильный ... Надеюсь :) Но эта вторая программа является коммерческой, поэтому у меня нет ее исходного кода, я только даю ему мой dbdir, экземпляр, имя пользователя и пароль.

Так что я могу сделать?

Эта ошибка не связана с входом в систему. Дело не в неверных учетных данных. Для этого вы получите другое сообщение об ошибке. Это сообщение об ошибке просто означает, что он не может найти ни сервер (возможно), ни базу данных в строке подключения.


person user2652682    schedule 05.08.2013    source источник


Ответы (2)


На CodePlex есть программа с открытым исходным кодом, которую вы можете загрузить для проверки строки подключения и т. Д. Вы можете найти ее здесь. Это должно помочь вам определить, где / в чем проблема.

Мне кажется, что в строке подключения вы вызываете свой сервер по имени машины, а SQL-сервер не поддерживает именованные каналы. Решение проблемы: либо включите именованные каналы в конфигурации SQL Server, либо в строке подключения укажите IP-адрес SQL Server вместо имени.

person Randy Minder    schedule 05.08.2013

Ошибка SqlException: System.Data.SqlClient.SqlException (0x80131904): ошибка Произошла ошибка сети или возникновение при подключении к SQL Server. Не могу найти сервер или недоступен. Убедитесь, что имя экземпляра правильное и что конфигурация SQL Server разрешает удаленные подключения. (поставщик: Поставщик именованных каналов, ошибка: 40 - не удалось открыть соединение с SQL Server) в System.Data.SqlClient.SqlInternalConnection.OnError (исключение SqlException, логическое breakConnection) в System.Data.SqlClient .TdsParser.ThrowExceptionAndWarning () в System.Data.SqlClient.TdsParser.Connect (ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean encrypt, Boolean encrypt. serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, SqlConnection owningObject) в System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover (ServerInfo serverInfo, String newPassword, Boolean redirectedOpenTimeout. SqlInternalConnectionTds.OpenLog inEnlist (SqlConnection owningObject, TimeoutTimer таймаут, SqlConnectionString connectionOptions, String Новый_пароль, Boolean redirectedUserInstance) в System.Data.SqlClient.SqlInternalConnectionTds..ctor (идентичности DbConnectionPoolIdentity, SqlConnectionString connectionOptions, объект providerInfo, String Новый_пароль, SqlConnection owningObject, Boolean redirectedUserInstance) в системе. Data.SqlClient.SqlConnectionFactory.CreateConnection (параметры DbConnectionOptions, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection) в System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnectionBaseBase.DbConnectionFactory. (DbConnection owningObject) в System.Data.ProviderBase.DbConnectionPool.UserCreateRequest (DbConnection owningObject) в System.Data.ProviderBase.DbConnectionPool.GetConnection (DbConnection owningObject ) в System.Data.ProviderBase.DbConnectionFactory.GetConnection (DbConnection owningConnection) в System.Data.ProviderBase.DbConnectionClosed. OpenConnection (DbConnection outerConnection, DbConnectionFactory connectionFactory) в System.Data.SqlClient.SqlConnection.Open () в cennik01.obSQL..ctor (пользователь String, проход String, экземпляр String, String dbdir) в Cennik_v2._1.Form1.button1_Click (Object отправитель, EventArgs e)

person Anil    schedule 24.10.2017