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
大前提になりますが、コンボボックスから値を取得している部分を全て固定文字列に置き換えた場合は接続できているのですか?
すみません、読み違えていました。「入力エラー」が出るので、そもそも接続云々は関係ありませんでしたね。失礼しました。
はい。ホスト名、ユーザID、パスワードすべて指定して接続を行った場合はしっかり接続ができています。
回答2件
あなたの回答
tips
プレビュー