
現在、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();
}
No.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プロパティあたりだと思います。
早速の回答ありがとうございます。
早速、try~catch句を挿入してみたところ意図通りの分岐処理ができました。
「C# .net 分岐 エラー処理」等のキーワードで検索していたのですが
なかなか答えが見つかりませんでした。
「C# try catch 」だと知りたかった内容がごろごろ…
現在Cの知識を持っていますので、「C#ではこうやるのか」と
既存の知識と繋がっていくのが楽しいです。
どうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel VBA セルの値がおかしいです
-
VBA セル間のリンク修正につい...
-
【マクロ】並び替えの範囲が、...
-
vba textboxへの入力について教...
-
ワードの図形にマクロを登録で...
-
エクエルのVBAコードについて教...
-
複数のExcelファイルをマージす...
-
Vba Array関数について教えてく...
-
【マクロ】シートの変数へ入れ...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
Excel VBA 選択範囲の罫線色の...
-
VBAでCOPYを繰り返すと、処理が...
-
【マクロ】開いているブックの...
-
えくせるのVBAコードについて教...
-
VBAの「To」という語句について
-
VB.net 文字列から日付型へ変更...
-
【ExcelVBA】5万行以上のデー...
-
VBA ユーザーフォーム ボタンク...
-
Vba セルの4辺について罫線が有...
-
vbsでのwebフォームへの入力制限?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
20人程度が一度に使うデータベ...
-
ACCESSからのODBC接続のみ応答...
-
Access から SQLserver に接続...
-
drop user できない。ORA-01940
-
DB接続ができなくなって困って...
-
SQLで同じDBに対し2つのコネク...
-
psvitaのリモートプレイなんで...
-
ACCESSからSQLServerのデータを...
-
ASPからDB2への接続方法
-
別の所にある(グローバルIPが...
-
SQLServer,接続失敗時のエラー...
-
SQL Serverの移行について
-
サーバー接続時、ホスト名はIP...
-
SQLServerの接続が突然できなく...
-
クライアントでの処理が遅い
-
(local)とlocalhostの違い
-
IBM系のDBでIMSに関して
-
データベースのOPEN,CLOSEについて
-
SQLSERVERの接続方法を教えて下...
-
ODBCドライバの再インストール方法
おすすめ情報