Windows 7 (MS SQL Server 2008) を搭載した私のコンピューターではうまく機能するが、Windows Vista (MS SQL Server 2005) を搭載した他のコンピューターでは機能しない C# でコードを作成しました。2 台目のコンピューターのシステムを変更できません ;) 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) で同じコードを実行すると、エラーが発生します (一部は他の言語であるため、翻訳しました)。
エラー 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、ブール値 ignoreSniOpenTimeout、 System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo サーバー情報、文字列 newPassword、ブール値 ignoreSniOpenTimeout、TimeoutTimer タイムアウト、SqlConnection owningObject) での Int64 timerExpire、ブール値の暗号化、ブール値の trustServerCert、ブール値の IntegratedSecurity) serverInfo、文字列 newPassword、Boolean redirectedUserInstance、SqlConnection owningObject、SqlConnectionString connectionOptions、TimeoutTimer タイムアウト) を System.Data に設定します。System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity ID、SqlConnectionString connectionOptions、オブジェクト providerInfo、文字列 newPassword、SqlConnection owningObject、Boolean redirectedUserInstance ) System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions オプション、オブジェクト poolGroupProviderInfo、DbConnectionPool プール、DbConnection owningConnection) で System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection、DbConnectionPool プール、DbConnectionOptions オプション) で System.Data.ProviderBase .DbConnectionPool。System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject) での CreateObject(DbConnection owningObject) System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) での System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) システムで。 Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) at System.Data.SqlClient.SqlConnection.Open() at cennik01.obSQL..ctor(String user, String pass, String instance, String dbdir) at Cennik_v2._1 .Form1.button1_Click(オブジェクト送信者, EventArgs e)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 (文字列ユーザー、文字列パス、文字列インスタンス、文字列 dbdir) Cennik_v2._1.Form1.button1_Click (オブジェクト送信者、EventArgs e) で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 (文字列ユーザー、文字列パス、文字列インスタンス、文字列 dbdir) Cennik_v2._1.Form1.button1_Click (オブジェクト送信者、EventArgs e) で_1.Form1.button1_Click(オブジェクト送信者, EventArgs e)_1.Form1.button1_Click(オブジェクト送信者, EventArgs e)
同じデータベースを使用している他のプログラムを実行すると、正しく接続されるので、ログインなどは正しいと思います...願っています:)しかし、この2番目のプログラムは商用であるため、ソースコードはありません。彼に私の dbdir、インスタンス、ユーザー名、およびパスワード。
それで、なにかお手伝いできますか?