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

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

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

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

Q&A

4回答

21478閲覧

DBで取得した値をテキストボックスに表示させる

退会済みユーザー

退会済みユーザー

総合スコア0

C#

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

0グッド

0クリップ

投稿2016/10/22 09:54

###前提・実現したいこと
いつもお世話になっております。現在単語帳アプリ作成で苦戦しているものです。
現在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

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

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

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

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

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

guest

回答4

0

キャストが上手くいかないですが
textBox1.Text=(read.GetInt32(0) + "");
ヌルを入れたら裏技的に使えるようです。

投稿2018/04/08 03:05

masa.net

総合スコア89

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

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

0

間違えました。
文字列ですと
textBox2.Text = read.GetString(1);
数字だと
read.GetInt64ですが上手いこと型変換しないとです。

投稿2018/04/08 02:29

masa.net

総合スコア89

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

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

0


textBox1.Text = read("社員ID");
カラム名を書くといいでしょう。

投稿2018/04/08 01:57

masa.net

総合スコア89

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

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

0

メインフォームに、テキストボックスは配置してありますか?
VisualStudio を使用している前提で書き込みます。

VisualStudio のフォームデザイナを使用して、ツールボックスからTextBoxを選択し、フォームに貼り付けてください。
デフォルトでは、最初に貼り付けた TextBoxコントロールは、textBox1 という名前が自動でつきます。

textBox1.Text = "文字列";

で、TextBox には書き込めます。

投稿2016/10/22 12:18

mugicya

総合スコア1046

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問