- - PR -
データベースログイン失敗
1
投稿者 | 投稿内容 | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-09-02 14:55
[Microsoft.SqlServer.Server.SqlProcedure]
private void button1_Click(object sender, EventArgs e) { // 接続文字列を生成する string stConnectionString = string.Empty; stConnectionString += "Data Source = localhost;"; stConnectionString += "Initial Catalog = localhost;"; stConnectionString += "Integrated Security = false;"; try { // SqlConnection の新しいインスタンスを生成する (接続文字列を指定) System.Data.SqlClient.SqlConnection cSqlConnection = ( new System.Data.SqlClient.SqlConnection(stConnectionString) ); // データベース接続を開く cSqlConnection.Open();//ここでSystem.Data.Sqlclientクラスが例外メッセージを吐き出しています。データベースのログイン前のハンドシェイク中にエラーが発生したとありますが、解決方法教えてください。DBには接続できているのは、理解しています。 // 接続に成功した旨を表示する MessageBox.Show("Microsoft SQL Server に接続されました"); // データベース接続を閉じる (正しくは オブジェクトの破棄を保証する を参照) cSqlConnection.Close(); cSqlConnection.Dispose(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } | ||||||||||||||||||||
|
投稿日時: 2008-09-02 15:09
stConnectionString += "Data Source = 127.0.0.1;";などと自ホストのIPアドレスを設定すると接続先SQLserverが暗号化をサポートしていないというエラーに切り替わるので、(System.Data.SqlClient.SqlException)
以下のようにSqlConnection.ConnectionStringを変更したのですが、 だめでした。。 // 接続文字列を生成する string stConnectionString = string.Empty; stConnectionString += "Data Source = 127.0.0.1;"; stConnectionString += "TrustServerCertificate = true;"; stConnectionString += "Initial Catalog = localhost;"; stConnectionString += "Encrypt = true;"; stConnectionString += "Integrated Security = true;"; | ||||||||||||||||||||
|
投稿日時: 2008-09-03 21:44
他のスレッドに関連したところだけ。
慣れていないうちは、リファレンスを参照しながら使いましょう。
複数回呼び出してもかまわないように設計されていますが、だからといって呼び出す必要はありません。Close 1回で十分です。 # 明示実装で Dispose を隠していないマイクロソフトが悪い、とも言える。 また、次のように書くこともできます。
このコードは、次のコードと等価です。
Dispose メソッド呼び出しが、finally ブロックにあることに注目してください。ご提示のコードでは、MessageBox.Show メソッド近辺で例外が生成されたとき、cSqlConnection.Close メソッドは実行されません。 本題を少し。
こういう場合、例外の型と、少なくとも Message プロパティの内容は、一字一句間違いないようにコピーしてください。
false では? |
1