
現在、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ランキング
-
20人程度が一度に使うデータベ...
-
SQLで同じDBに対し2つのコネク...
-
ACCESSからのODBC接続のみ応答...
-
SQLクライアント設定
-
IBM系のDBでIMSに関して
-
SQLサーバーのやり方
-
phpからsqlserverへの接続
-
drop user できない。ORA-01940
-
OLE DBプロバイダを使ってADOで...
-
DBに接続する時のオープンとク...
-
SQLServer,接続失敗時のエラー...
-
AS/400のデータをMS_ACCESSでも...
-
COBOL言語で開発できますか?
-
SQL SERVERのドメインを変更する
-
SQLServerへのOpen命令でのエラー
-
sqlで文字列を最後に追加したい
-
Access2000環境に対応するMid関...
-
SQL Loaderを使いたい
-
SQLサーバー接続 特定のPCがWin...
-
SQLサーバー接続について
マンスリーランキングこのカテゴリの人気マンスリー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ドライバの再インストール方法
おすすめ情報