dポイントプレゼントキャンペーン実施中!

現在、VisualStudio C# にて、
接続~レコード編集のアプリを作成しております。
テキストボックスでユーザーからインスタンス名やパスワードを受け取り、接続文字列を作成。
それが正しければ接続成功…と、ここまではできています。

しかし、接続文字列が間違っていた時、
インスタンス名やパスワードが間違っていた時等
当然エラーになりますがどのようなエラー処理を記述すればよいのでしょうか?

現在VisualStudioでデバッグしているため、
自分は「error: 25 - 接続文字列が有効ではありません」
というエラー内容を参照できますが、
この「25番のエラーが起きているんだな」というのを
ユーザーにどうやって伝えればよいのでしょう?

下記の★印の部分に、何かしら…Cでいうなら
(DB接続関数の引数にエラー番号を持つと仮定して)
if(ret =! 0){
Logprint("エラー%dによる終了",err);
return 1; }
として、ユーザーが接続の失敗を知ることができますがが…
VisualStudio C#ではどうすればよいのか判らず困っています。
どうぞよろしくお願いします。

【現在のソース】
private void connectbutton_Click(object sender, EventArgs e)
 {
// 接続文字列を生成する
string stConnectionString = string.Empty;

  //DataSource ([サーバー名]+[インスタンス名]を連結)
//サーバー名とインスタンス名の区切りは[\]でなく[\\]を挿入
stConnectionString += "Data Source = "
+ textBox1.Text + "\\" + textBox2.Text + ";";

//Initial Catalog (データベース名を取得)
stConnectionString += "Initial Catalog = "
+ textBox3.Text + ";";

//UserIDは[sa]で固定
stConnectionString += "UID = s;";

//Passwordを入力し、接続文字列の最後に[;]を付ける
stConnectionString += "PWD = "
+ textBox4.Text + ";";

// SqlConnection の新しいインスタンスを生成する
System.Data.SqlClient.SqlConnection cSqlConnection
=(new System.Data.SqlClient.SqlConnection
(stConnectionString) );

// データベース接続を開く
cSqlConnection.Open();

// 接続に成功した旨を表示する(デバッグ用
MessageBox.Show("Microsoft SQL Server に接続");

//オブジェクトの破棄を保証
cSqlConnection.Close();
cSqlConnection.Dispose();
}

A 回答 (1件)

SqlExceptionが発生しているはずなので,それをキャッチするようなコードを記述します。


try
{
 cSqlConnection.Open();
}
catch (SqlException e)
{
 // メッセージの表示等。
 throw; // 例外を親に伝達。場合によっては,new Exception(e.Message, e);等も。
}

SqlException中でのコードの取得等は,
http://msdn.microsoft.com/ja-jp/library/system.d …
を参照してください。
Message, Number, Stateプロパティあたりだと思います。
    • good
    • 2
この回答へのお礼

早速の回答ありがとうございます。
早速、try~catch句を挿入してみたところ意図通りの分岐処理ができました。
「C# .net 分岐 エラー処理」等のキーワードで検索していたのですが
なかなか答えが見つかりませんでした。
「C# try catch 」だと知りたかった内容がごろごろ…
現在Cの知識を持っていますので、「C#ではこうやるのか」と
既存の知識と繋がっていくのが楽しいです。
どうもありがとうございました。

お礼日時:2009/06/02 17:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています