2011-09-13 10 views
0

MS SQLデータベースを使用するWindowsアプリケーション(2.0フレームワーク)を作成しました。
開発中に私はMS VISUAL STUDIO 2010とSQL 2008 MANAGEMENT STUDIOを使用しました。開発中
私の接続文字列は次のとおりです。C#WindowsアプリケーションでのMS SQL Server 2008 R2 EXPRESSの使用?

SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=SL;Integrated Security=True"); 

すべてが正常に動作します....

今私は、クライアント・システム上でこのアプリケーションを実行します。
クライアントシステムにMS SQL SERVER 2008 EXPRESSが正常にインストールされました。
私のシステムのSQLサービスが停止し、マシンから.mdfと.ldfファイルがコピーされ、クライアントの "c:\ Database \"に貼り付けられました。 しかし、実行中に問題が発生します。

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)

私は何度も試した接続文字列は、次のとおりです。私は、接続文字列でUser ID=sa;Password=passを使用する場合

SqlConnection con = new SqlConnection("Data Source=.\\MSSQLEXPRESS;Initial Catalog=SL;Integrated Security=True"); 

SqlConnection con = new SqlConnection("Data Source=.\\MSSQLEXPRESS;Initial Catalog=SL;Persist Security Info=True;User ID=sa;Password=pass"); 

SqlConnection con = new SqlConnection("Data Source=.\\MSSQLEXPRESS; AttachDbFilename =C:\\Database\\SL.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"); 

は私が取得:

authentication failed for 'sa'

は、私はいくつかのステップを見つからないかやっています違う?私のシステムからデータベースをコピーした後に何をすべきか教えてください。私の接続文字列はC#ですべきですか?

ありがとうございます!

答えて

2

データベースをSQLExpressに添付するか、OSQLを使用するか、SQLExpressをインストールしたPCにクライアントツールをインストールしてデータベースを接続するだけです。

0

新しいインスタンス名は 'MSSQLEXPRESS'ですか。

My R2 Expressインスタンスは「SQLEXPRESS」と呼ばれています(これは実際にはinstallerの既知のバグが原因です)。

インスタンスが実際にあなたが思っていると呼ばれるかどうかチェックしたいかもしれません。

+0

はい...すなわちMSSQLEXPRESS。 –

1

まず、Sres' answerを確認してください。
データベースを接続するために接続文字列にSQL Serverを指定しない場合(3番目の例のようにAttachDbFilename)、自分が言ったように自分で接続する必要があります。

3つの接続文字列の例については、すべてが特定の状況下でのみ動作します。 connectionstrings.comをチェックしてみてください。ここで

はあなたの3つの接続文字列に加え、彼らの問題の短い説明です:

Data Source=.\MSSQLEXPRESS;Initial Catalog=SL;Integrated Security=True

- >これはアプリで実行されている現在のWindowsユーザを使用しています。したがって、現在のWindowsユーザーは、クライアントのマシン上のデータベースに対するアクセス許可を持っている必要があります。

Data Source=.\MSSQLEXPRESS;Initial Catalog=SL;Persist Security Info=True;User ID=sa;Password=pass

は - >これは、特別な 'SA' ユーザアカウントを使用しています。

  • Mixed mode authenticationはこれを行わない場合、あなたはWindowsのみの真偽、および「SA」を持っている(設定されている必要があります:これを機能させるためには、次の前提条件が満たされていることを確認する必要がありますSQL Serverの認証ユーザー名)
  • 'sa'のパスワードを指定する必要があります。もちろん、開発マシンと同じでなければなりません。

しかし、これはとにかく最適な解決策ではありません。 'sa'は完全な権限を持つ管理者アカウントであり、管理者アカウントを使用してアプリケーションでSQL Serverにアクセスしないでください。
(Windows認証ではなく)SQL Server認証を本当に使用する場合は、アプリケーションに必要な最小限の権限で新しいアカウントを作成する方がよいでしょう。

Data Source=.\MSSQLEXPRESS; AttachDbFilename =C:\Database\SL.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True

- 最初の接続文字列と同じように>同じ問題(現在のWindowsユーザーが権限を持っている必要があります)。 さらに、User Instance=TrueをSQL Serverで有効にする必要があります。 connectionstrings.comから
引用:インストールは、私は、この名前を提供してきました

To use the User Instance functionality you need to enable it on the SQL Server. This is done by executing the following command: sp_configure 'user instances enabled', '1'. To disable the functionality execute sp_configure 'user instances enabled', '0'.

関連する問題