表題の件で質問お願い致します。
WPFの画面上にあるDateGridにデータベースから取得したデータを表示させたいのですが
列数の少ないテーブルに関してはすべてのデータや一部のデータを取得させる、ということは出来ました
今回は列名には、あるテーブルのレコード分表示させたいと考えています
列数の少ないテーブルを表示させたときは手書きで
dt.Columns.Add("〇〇");
のように複数列名を書いていたのですが
今回列名に指定したいデータは90個近くあり手書きではなく、列名に指定したいデータをSELECTで取ってきて、自動で横軸に当てはめたいと考えています
DataTable tb1 = new DataTable();
var command1 = new NpgsqlCommand("select st_num from lesson1.person", conn);
var dataReader1 = command.ExecuteReader();
というコードを追加して、ほしい列名のデータはdataReader1に入れることは出来たのですが
行としては表示できても列として表示することができません
列名をデータベースから取ってきた値を当てはめる方法についてアドバイスいただきたいです
分かりにくい説明で申し訳ありません
よろしくお願いします
以下、グリッドにテーブルのデータを表示させるコードの抜粋です
これを応用できるのかなと考えました
C#
public partial class MainWindow : Window
{
public MainWindow() { DataTable tb = new DataTable(); //DataTableのインスタンスtbを定義 tb.Columns.Add("name"); //DataTableのインスタンスtbにnameという列を挿入 InitializeComponent(); var connString = "Server=cpedev27;Port=5432;User Id=test_user;Password=test_user;Database=test_server;"; var conn = new NpgsqlConnection(connString); conn.Open(); var command = new NpgsqlCommand("select name from lesson2.person", conn); var dataReader = command.ExecuteReader(); while (dataReader.Read()) { var row = tb.NewRow(); for (int i = 0; i < dataReader.FieldCount; i++) { row["name"] = dataReader["name"]; // dataReader["name"]はDBからとってくるデータの為名前は欲しい列と一致させる } tb.Rows.Add(row); }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/10/12 05:58
2017/10/12 08:54
2017/10/15 14:42