
現在、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で質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- C言語・C++・C# TCP/IP通信時のサーバーからの受信 2 2022/11/23 09:11
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- Wi-Fi・無線LAN PCWi-Fiの設定方法がわからなくて困っています。 4 2022/12/28 18:30
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- オープンソース AWSドメイン名でApacheテスト・ページを表示させる方法を教えて下さい。 1 2023/04/26 15:59
- デスクトップパソコン USB接続のマイクについて 6 2022/09/18 07:54
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
create temporary tableについて
-
cseでロリポップのDBに接続は可...
-
AccessとMSDEの接続が端末によ...
-
ネットワーク越しにODBC接続
-
他のローカルにあるデータベー...
-
PostgresSQLはGUIで操作するこ...
-
VBExpressからSQLサーバーへの接続
-
ADOを利用したODBC、OLEDB経由...
-
windows環境でのpostgreSQL
-
SQLSERVERへのODBC接続について
-
Excel-VBAの「しばらくお待ちく...
-
SQLのエラー(~付近に不適切な...
-
Access2010 accdbのエラー「ODB...
-
ノートンの解約(「ライセンス...
-
■軽くするため無効にて大丈夫な...
-
SQLサーバー接続 特定のPCがWin...
-
sqlで文字列を最後に追加したい
-
SQLSERVERエージェントからのス...
-
SQL Loaderを使いたい
-
コールドスタンバイのライセンス
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DB接続ができなくなって困って...
-
Access から SQLserver に接続...
-
ACCESSからのODBC接続のみ応答...
-
drop user できない。ORA-01940
-
SQLServer,接続失敗時のエラー...
-
SQLで同じDBに対し2つのコネク...
-
ACCESSからSQLServerのデータを...
-
別の所にある(グローバルIPが...
-
データベースのOPEN,CLOSEについて
-
SQLServer認証とWIndows認証
-
サーバー接続時、ホスト名はIP...
-
同一MDFファイルの共有について
-
DBに接続する時のオープンとク...
-
phpからsqlserverへの接続
-
SQL Serverの移行について
-
異なるドメイン間をODBC経由でD...
-
クライアントでの処理が遅い
-
ACCESS ODBC 接続ダイアログ 非...
-
ADOを利用したODBC、OLEDB経由...
-
VB6.0(SP6)でMySQLに接続したい
おすすめ情報