数据网格视图和数据库

Datagridview and database

我创建了一个 datagridview 并用来自 postgresql 数据库的数据填充它

string connString = "Server=" + HOST + ";Port=" + PORT + "; User Id=" + USER + ";Password=" + PASSWORD + ";Database=" + DATABASE + "";
            string query = "SELECT c.id as Numéro,nom_beneficier,date_saisie,cat.designation,cat.taux,montant_brut,montant_rs,net_rs " 
                           +"From crs_certificat c,crs_beneficier b,crs_categorie_taux cat "
                           +"WHERE c.id_beneficier=b.id AND c.categorie=cat.id ORDER BY Numéro DESC";
            NpgsqlConnection conn = new NpgsqlConnection(connString);
            NpgsqlCommand cmd = new NpgsqlCommand(query, conn);
            try
            {
                NpgsqlDataAdapter da = new NpgsqlDataAdapter();
                da.SelectCommand = cmd;
                DataTable dt = new DataTable();
                da.Fill(dt);
                listCertificat.DataSource = dt;

            }catch(Exception ex){
                MessageBox.Show(ex.Message);
            }

但是 datagridview 的列名称 header 与查询相同!!
我怎样才能更改它们并显示我的姓名?

正在分配网格视图的 Header 文本。转到 GridView-->Columns-->Add the column 的属性并将 DataBound 设置为数据库 Column nameHeader Text 属性.

或者,如果您想以编程方式设置 header,请使用以下代码:-

 GridView_Id.Columns[0].HeaderText = "HeaderName";
 //This will change the GridView’s first column to “HeaderName

其他

protected void grdSearchResult_RowDataBound(object sender, GridViewRowEventArgs e)
{
     if (e.Row.RowType == DataControlRowType.Header)
     {
        for (int i = 0; i < e.Row.Cells.Count; i++)
        {
            e.Row.Cells[i].Text = "your header name";
        }
     }
}

您也可以为查询中的列命名

看这个例子

 select 1 "My_Column",'a_string_value'::varchar "My_Second_Column"

将return

My_Column     My_Second_Column
Integer       character varying
-------------------------------------
       1      a_string_value

您可以在 select 查询中给出您想要的列名,这样您的 select 查询应该是这样的:

SELECT c.id  "Numéro",
       nom_beneficier "your_column_name" ,
       date_saisie "your_column_name",
       cat.designation "your_column_name",
       cat.taux,montant_brut "your_column_name",
       montant_rs "your_column_name",
       net_rs "your_column_name"
From crs_certificat c,crs_beneficier b,crs_categorie_taux cat 
WHERE c.id_beneficier=b.id AND c.categorie=cat.id ORDER BY  "Numéro" DESC