[英]How to set custom column header to a datagridview and display datatable records?
问我想显示来自 SQL Server 的查询记录,这些记录位于具有自定义列标题的表中。 我该怎么做 ?
我的查询功能如下
private DataTable GetRecords(int QID, DateTime FromDate, DateTime ToDate)
{
SqlConnection myConn = new SqlConnection(ConfigurationManager.ConnectionStrings["CONNSTRING"].ConnectionString);
// Create the command and set its properties.
SqlCommand command = new SqlCommand();
command.Connection = myConn;
command.CommandText = "sp_GetRecords";
command.CommandType = CommandType.StoredProcedure;
// Add the input parameter and set its properties.
SqlParameter parameter1 = new SqlParameter();
parameter1.ParameterName = "@QID";
parameter1.SqlDbType = SqlDbType.Int;
parameter1.Direction = ParameterDirection.Input;
parameter1.Value = QID;
SqlParameter parameter2 = new SqlParameter();
parameter2.ParameterName = "@FromDate";
parameter2.SqlDbType = SqlDbType.DateTime;
parameter2.Direction = ParameterDirection.Input;
parameter2.Value = FromDate;
SqlParameter parameter3 = new SqlParameter();
parameter3.ParameterName = "@ToDate";
parameter3.SqlDbType = SqlDbType.DateTime;
parameter3.Direction = ParameterDirection.Input;
parameter3.Value = ToDate;
// Add the parameter to the Parameters collection.
command.Parameters.Add(parameter1);
command.Parameters.Add(parameter2);
command.Parameters.Add(parameter3);
myConn.Open();
SqlDataReader GetAgentTransactions = command.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(GetAgentTransactions);
GetAgentTransactions.Close();
myConn.Close();
return dt;
}
为了在 datagridview 中绑定和显示,我在显示按钮单击事件上有以下内容。
protected void btnShow_Click(object sender, EventArgs e)
{
DataTable table = new DataTable();
table = GetRecords(1, Convert.ToDateTime(txtFromDate.Text.Trim()), Convert.ToDateTime(txtToDate.Text.Trim()));
datagridview.DataSource = table;
datagridview.DataBind();
}
}
我希望返回的记录在列标题下显示为 Sl。 不,姓名和注册。 数字。 我该怎么做 ? 请帮助提供代码示例。
我猜您无法更改 SQL 查询以按照您想要的方式获取列名。 所以让我们修改DataGridView。
如果您看到 DataTable 中的列名与 DataGridView 中的列名一样,那是因为它会自动生成它们。
如果您想在列中使用自己的标题文本,则必须自己指定它们。
第一,您需要关闭列自动生成。 为此,在 DataGridView 中将AutoGenerateColumns
设置为false
。
然后,您必须手动添加列并在每列中指定DataField
值等于来自 SQL Server 的实际列名和HeaderText
等于您想要的列显示名称。
现在,当您绑定DataTable
,它将根据DataField
和HeaderText
值为DataGridView
的匹配列生成列。
在此处查看示例以获取示例标记: http : //msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.columns.aspx
编辑:
这是一个示例 GridView 标记,用于展示您必须如何手动设置列。
AutoGenerateColumns
设置为false
DataField
应该是数据库中的字段名称。 HeaderText
应该是您的文本。
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"> <Columns> <asp:BoundField DataField="Id" HeaderText="Id" /> <asp:BoundField DataField="FirstName" HeaderText="First Name" /> <asp:BoundField DataField="LastName" HeaderText="Last Name" /> <asp:BoundField DataField="DOB" HeaderText="Date Of Birth" /> </Columns> </asp:GridView>
您必须在 Windows 窗体上添加此内容:
1. dgr_donors.AutoGenerateColumns = false;
2. dgr_donors.Columns.Add("id", "id");
3. dgr_donors.Columns.Add("BCode", "BarCode");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.