過去数日間、これにかなりこだわっています。通常はここに投稿しませんが、自分で検索しただけではうまくいきません。PostgreSQL にクエリを実行し、それぞれが複数のフィールドを持つ複数のレコードを作成したいと考えています (SELECT ステートメントで示されています)。返されたレコードの数がわからないので、ある種の while ループが最適であると考えました。すべての値をリストとして取得し、そのリストをテーブルにスローして、必要に応じて行を追加することはできないようです。
NpgsqlConnection pgconn = new NpgsqlConnection(ConfigurationManager.ConnectionStrings["ConnString"].ConnectionString);
pgconn.Open();
NpgsqlCommand command = new NpgsqlCommand("SELECT line, oper, subst_a, from_loc, to_loc, area " +
"FROM ab_basedata.superpipes_ihs " +
"WHERE gdm_approv = '" + lic_num_lbl + "'", pgconn);
List<List<string>> pipes = new List<List<string>> { };
NpgsqlDataReader dr = command.ExecuteReader();
while (dr.Read())
{
pipes.Add("Line: " + dr.GetValue(0) + " " + dr.GetValue(1) + " " + dr.GetValue(2) + " " + dr.GetValue(3) + " " + dr.GetValue(4) + " " + dr.GetValue(5) + " Office");
foreach (List<string> pip in pipes)
{
TableRow row = new TableRow();
TableCell cell1 = new TableCell();
cell1.Text = string.Join(" ", pipes);
row.Cells.Add(cell1);
docTable.Rows.Add(row);
}
}