C# Postgres—在查询中返回列名的优雅方式

C# Postgres—在查询中返回列名的优雅方式,c#,postgresql,C#,Postgresql,将一个超级简单的查询工具放在一起,如下所示: 问题:如何让列名通过,以便它们与查询结果匹配 代码是 NpgsqlConnection conn = new NpgsqlConnection("Server=127.0.0.1;Port=5432;User Id=postgres;Password=letmein;Database=dave;"); conn.Open(); try { var colName = new NpgsqlC

将一个超级简单的查询工具放在一起,如下所示:

问题:如何让列名通过,以便它们与查询结果匹配

代码是

 NpgsqlConnection conn = new NpgsqlConnection("Server=127.0.0.1;Port=5432;User Id=postgres;Password=letmein;Database=dave;");
        conn.Open();

        try {
            var colName = new NpgsqlCommand(@"SELECT column_name
                                            FROM information_schema.columns
                                            WHERE table_schema='public' AND table_name='simple_table' ORDER BY column_name", conn);

            NpgsqlDataReader dr = colName.ExecuteReader();

            while (dr.Read()) {
                for (int i = 0; i < dr.FieldCount; i++) 
                    txtResults.Text += dr[i] + " ";
            }
            txtResults.Text += "\r\n \r\n";

            var command = new NpgsqlCommand(txtSql.Text, conn);
            dr = command.ExecuteReader();

            while (dr.Read()) {
                for (int i = 0; i < dr.FieldCount; i++) 
                    txtResults.Text += dr[i] + "  ";
                txtResults.Text += "\r\n";
            }
        }
        finally {
            conn.Close();
        }
NpgsqlConnection conn=newnpgsqlconnection(“服务器=127.0.0.1;端口=5432;用户Id=postgres;密码=letmein;数据库=dave;”;
conn.Open();
试一试{
var colName=new NpgsqlCommand(@“SELECT column_name
从信息_schema.columns
其中,表\u schema='public'和表\u name='simple\u table'按列\u name排序,conn);
NpgsqlDataReader dr=colName.ExecuteReader();
while(dr.Read()){
对于(int i=0;i
您可以使用DataGrid显示结果:

        DataTable dt = new DataTable();
        dt.Load(reader);
        dataGridView1.DataSource = dt;
参考:

 for (int i = 0; i < dr.FieldCount; i++)
 {
    fieldnames += dr.GetName(i) + " | " ;
 }

在控制台中检索所有columnName:fieldValue:

            for(int i=0; i < ds.Tables[0].Rows.Count; i++)
                for(int j=0; j < ds.Tables[0].Rows[i].ItemArray.Length; j++)
                    Console.WriteLine(ds.Tables[0].Columns[j].ToString() + " : " + ds.Tables[0].Rows[i][j].ToString());
for(int i=0;i
            for(int i=0; i < ds.Tables[0].Rows.Count; i++)
                for(int j=0; j < ds.Tables[0].Rows[i].ItemArray.Length; j++)
                    Console.WriteLine(ds.Tables[0].Columns[j].ToString() + " : " + ds.Tables[0].Rows[i][j].ToString());