数据网格视图和数据库
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 name
和 Header 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
我创建了一个 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 name
和 Header 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