Q&A
###前提・実現したいこと
いつもお世話になっております。現在単語帳アプリ作成で苦戦しているものです。
現在DBで取得した値をボタンクリック時にテキストボックスに表示させようとしております。
使用しているツールはVisual Studio2015で、DB接続にNpgsql、そしてDBはPostgresqlを使用しています。
コンソールアプリケーションでDB接続と値の取得、表示はできました。そして現在Windows FormでDBUtilsとMainFormクラスをつくり、DBUtilsではDBの接続と値の取得を行い、取得した値をMainFormに渡して、テキストボックスに表示させたいと考えておりますが、コードが書けず苦戦しております。
アドバイスをお願い致します。
###発生している問題・エラーメッセージ
###該当のソースコード
C#
1<DB接続クラス> 2using Npgsql; 3using System; 4using System.Collections.Generic; 5using System.Linq; 6using System.Text; 7using System.Threading.Tasks; 8 9namespace DatabaseConnection 10{ 11 class DBUtils 12 { 13 static void Main() 14 { 15 var list = new List<string>(); 16 string conStr; 17 conStr = "Server = localhost; Port = 5432; User Id = postgres; Password = PassWord; Database = vocab"; 18 NpgsqlConnection conn = new NpgsqlConnection(conStr); 19 conn.Open(); 20 var cmd = new NpgsqlCommand(@"select * from vocabschem.t_vocab", conn); 21 try 22 { 23 24 NpgsqlDataReader dataReader = cmd.ExecuteReader(); 25 while (dataReader.Read()) 26 { 27 for (int i = 0; i < dataReader.FieldCount; i++) 28 { 29 //ここで値の取得ができるのではと思うが、不明 30 } 31 } 32 33 } 34 catch (Exception e) 35 { 36 //エラー発生時にどのようなエラーが出ているかをみる 37 var ArgumentException = new ArgumentException(); 38 39 } 40 41 conn.Close(); 42 43 } 44 } 45} 46 47<テキストボックス表示クラス> 48using System; 49using System.Collections.Generic; 50using System.ComponentModel; 51using System.Data; 52using System.Drawing; 53using System.Linq; 54using System.Text; 55using System.Threading.Tasks; 56using System.Windows.Forms; 57 58namespace DatabaseConnection 59{ 60 public partial class MainForm : Form 61 { 62 public MainForm() 63 { 64 InitializeComponent(); 65 } 66 //ボタンクリックイベント 67 private void StartButtonClick(object sender, EventArgs e) 68 { 69 //どのような処理をすればよいか調べてもわからず、途中。 70 DBUtils.conn = new DBUtils(); 71 } 72 } 73} 74
###試したこと
コンソールアプリケーションでDBと接続でき、Select文で値も取れ、表示もできましたので、DBには接続できています。
###補足情報(言語/FW/ツール等のバージョンなど)
開発環境:Windows 10 Visual Studio2015(FormApplication)
DB :PostgreSQL ver 9.3
DB接続 :Npgsql
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。