質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

2回答

2415閲覧

C# DB コンボボックスで指定したホストへの接続

退会済みユーザー

退会済みユーザー

総合スコア0

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2017/07/19 02:30

C#でWindowsフォームのアプリケーションを作成しています。
コンボボックスで指定したホストへ接続をし、DBを参照するというものです。
接続ができたならばリストボックスにDB一覧を表示させます。
コンボボックスにはlocalhostというアイテムのみ入っており、
IPアドレスは手入力させて指定をし、接続させたいのですが、
接続させてもコード内の”入力エラー”がでてしまいます。
comnoBox1でうまく入力されたIPアドレスが取得できていないのでしょうか。

C#

1 private void button1_Click(object sender, EventArgs e) 2 { 3 if (comboBox1.SelectedItem == null && comboBox1.Text != "localhost") 4 5 { 6 MessageBox.Show("入力エラー"); 7 8 } 9 else 10 { 11 try 12 { 13 string tmpCon = "server={0};uid={1};pwd={2}"; 14 con = new MySqlConnection(); 15 con.ConnectionString = 16 String.Format(tmpCon, 17 comboBox1.Text, "userID", "password"); 18 com = new MySqlCommand(); 19 com.Connection = con; 20 21 com.CommandText = "SHOW DATABASES;"; 22 con.Open(); 23 dtr = com.ExecuteReader(); 24 25 listBox1.Items.Clear(); 26 27 while (dtr.Read()) 28 { 29 listBox1.Items.Add(dtr[0]); 30 } 31 dtr.Close(); 32 con.Close(); 33 } 34 catch (NullReferenceException e1) 35 { 36 MessageBox.Show(e1.Message); 37 } 38 catch (Exception e1) 39 { 40 MessageBox.Show(e1.Message); 41 } 42 43 } 44 } 45

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Tak1wa

2017/07/19 02:35 編集

大前提になりますが、コンボボックスから値を取得している部分を全て固定文字列に置き換えた場合は接続できているのですか? すみません、読み違えていました。「入力エラー」が出るので、そもそも接続云々は関係ありませんでしたね。失礼しました。
退会済みユーザー

退会済みユーザー

2017/07/19 02:35

はい。ホスト名、ユーザID、パスワードすべて指定して接続を行った場合はしっかり接続ができています。
guest

回答2

0

ベストアンサー

C#

1 private void button1_Click(object sender, EventArgs e) 2 { 3 if (comboBox1.SelectedItem == null && comboBox1.Text == null) 4 { 5 MessageBox.Show("ホストが未入力です。"); 6 7 } 8 else 9 {

で解決できました。ありがとうございました。

投稿2017/07/19 02:53

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

こんにちは。

以下のコードは何をされたいのでしょうか。
選択肢にない値(任意のホスト?)を入力すると必ずここに入ると思いますが…。
期待している動作でしょうか?

if (comboBox1.SelectedItem == null && comboBox1.Text != "localhost") { MessageBox.Show("入力エラー"); }

投稿2017/07/19 02:44

Tak1wa

総合スコア4791

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/07/19 02:48

申し訳ありません。わたしも今気が付きました。 コンボボックスが未入力の際と指定されたホストが存在しない場合にエラーメッセージを表示させるのが、期待している動作です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問