[英]How to Change the Header Name / Column Name Of a Datatable Fed to dataGridView
I am using DataTable
to fill a DataGridView
for a search / filter. 我正在使用DataTable
填充DataGridView
进行搜索/过滤。
The DataGridView shows the actual Database column names. DataGridView显示实际的数据库列名称。
But I want to change those column names. 但是我想更改那些列名。 eg tbl_Users
has a column labeled LocalNo
that I want to change to Unit No.
例如, tbl_Users
有一个列为LocalNo
的列,我想更改为LocalNo
Unit No.
Here is my code : 这是我的代码 :
namespace FrequencyBook
{
public partial class Form11 : Form
{
private static Form11 alreadyOpened = null;
public Form11()
{
InitializeComponent();
{
if (alreadyOpened != null && !alreadyOpened.IsDisposed)
{
alreadyOpened.Focus(); // Bring the old one to top
Shown += (s, e) => this.Close(); // and destroy the new one.
return;
}
// Otherwise store this one as reference
alreadyOpened = this;
}
}
private DataTable dt = new DataTable();
private void Form11_Load(object sender, EventArgs e)
{
dataGridView11.DataSource = GetSearchForm();
}
private DataTable GetSearchForm()
{
string connString = ConfigurationManager.ConnectionStrings["FrequencyBook.Properties.Settings.db_FrequenciesConnectionString"].ConnectionString;
using (OleDbConnection conn = new OleDbConnection(connString))
{
using (OleDbCommand cmd = new OleDbCommand("Select * FROM tbl_Users", conn))
{
conn.Open();
OleDbDataReader reader = cmd.ExecuteReader();
dt.Load(reader);
}
}
return dt;
}
private void closeFormToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Close();
}
private void resetFormToolStripMenuItem_Click(object sender, EventArgs e)
{
tboxSearchLicensee.Clear();
tboxSearchCallsign.Clear();
tboxSearchLocation.Clear();
tboxSearchBand.Clear();
tboxSearchRID.Clear();
tboxSearchLocalNo.Clear();
}
private void tboxSearchLicensee_TextChanged(object sender, EventArgs e)
{
DataView dv = dt.DefaultView;
dv.RowFilter = "Licensee LIKE '%" + tboxSearchLicensee.Text + "%'" ;
}
private void tboxSearchCallsign_TextChanged(object sender, EventArgs e)
{
DataView dv = dt.DefaultView;
dv.RowFilter = "Callsign LIKE '%" + tboxSearchCallsign.Text + "%'" ;
}
private void tboxSearchLocation_TextChanged(object sender, EventArgs e)
{
DataView dv = dt.DefaultView;
dv.RowFilter = "Location LIKE '%" + tboxSearchLocation.Text + "%'" ;
}
private void tboxSearchBand_TextChanged(object sender, EventArgs e)
{
DataView dv = dt.DefaultView;
dv.RowFilter = "Band LIKE '%" + tboxSearchBand.Text + "%'" ;
}
private void tboxSearchRID_TextChanged(object sender, EventArgs e)
{
DataView dv = dt.DefaultView;
dv.RowFilter = string.Format("RID1 LIKE '%{0}%' OR RID2 LIKE '%{0}%' OR RID3 LIKE '%{0}%' OR RID4 LIKE '%{0}%'", tboxSearchRID.Text);
//DataView dv = dt.DefaultView;
//dv.RowFilter = "RID1 LIKE '%" + tboxSearchRID.Text + "%'" ;
}
private void tboxSearchLocalNo_TextChanged(object sender, EventArgs e)
{
DataView dv = dt.DefaultView;
dv.RowFilter = "LocalNo LIKE '%" + tboxSearchLocalNo.Text + "%'" ;
}
I've read this post here: How to change the DataTable Column Name? 我在这里阅读了这篇文章: 如何更改DataTable列名? The first answer makes sense to me, but I don't know where I need to add the new lines. 第一个答案对我来说很有意义,但是我不知道需要在哪里添加新行。 I've tried in a few places, but NO JOY. 我已经在几个地方尝试过,但是不高兴。
Here is my new code. 这是我的新代码。 It works for the header / column name change, but it breaks the actual search / filter function. 它适用于标题/列名称的更改,但破坏了实际的搜索/过滤功能。 I actually changed the new lines back to the original name and got the Form to work again. 实际上,我将新行改回了原来的名称,并让该表格再次起作用。 Any suggestions? 有什么建议么? Here is a screenshot of my Search / Filter Form: My search form 这是我的“搜索/过滤器”表单的屏幕截图: 我的搜索表单
namespace FrequencyBook
{
public partial class Form11 : Form
{
private static Form11 alreadyOpened = null;
public Form11()
{
InitializeComponent();
{
if (alreadyOpened != null && !alreadyOpened.IsDisposed)
{
alreadyOpened.Focus(); // Bring the old one to top
Shown += (s, e) => this.Close(); // and destroy the new one.
return;
}
// Otherwise store this one as reference
alreadyOpened = this;
}
}
private DataTable dt = new DataTable();
private void Form11_Load(object sender, EventArgs e)
{
dataGridView11.DataSource = GetSearchForm();
}
private DataTable GetSearchForm()
{
string connString = ConfigurationManager.ConnectionStrings["FrequencyBook.Properties.Settings.db_FrequenciesConnectionString"].ConnectionString;
using (OleDbConnection conn = new OleDbConnection(connString))
{
using (OleDbCommand cmd = new OleDbCommand("Select * FROM tbl_Users", conn))
{
conn.Open();
OleDbDataReader reader = cmd.ExecuteReader();
dt.Load(reader);
}
}
dt.Columns["ID"].ColumnName = "ID";
dt.Columns["Licensee"].ColumnName = "Licensee";
dt.Columns["Callsign"].ColumnName = "Callsign";
dt.Columns["LocalNo"].ColumnName = "Unit";
dt.Columns["Location"].ColumnName = "Location";
dt.Columns["FreqBand"].ColumnName = "Band";
dt.Columns["Email"].ColumnName = "Email";
dt.Columns["Phone"].ColumnName = "Phone";
dt.Columns["RID1"].ColumnName = "RID1";
dt.Columns["RID2"].ColumnName = "RID2";
dt.Columns["RID3"].ColumnName = "RID3";
dt.Columns["RID4"].ColumnName = "RID4";
dt.Columns["Notes"].ColumnName = "Notes";
return dt;
}
private void closeFormToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Close();
}
private void resetFormToolStripMenuItem_Click(object sender, EventArgs e)
{
tboxSearchLicensee.Clear();
tboxSearchCallsign.Clear();
tboxSearchLocation.Clear();
tboxSearchBand.Clear();
tboxSearchRID.Clear();
tboxSearchLocalNo.Clear();
}
private void tboxSearchLicensee_TextChanged(object sender, EventArgs e)
{
DataView dv = dt.DefaultView;
dv.RowFilter = "Licensee LIKE '%" + tboxSearchLicensee.Text + "%'" ;
}
private void tboxSearchCallsign_TextChanged(object sender, EventArgs e)
{
DataView dv = dt.DefaultView;
dv.RowFilter = "Callsign LIKE '%" + tboxSearchCallsign.Text + "%'" ;
}
private void tboxSearchLocation_TextChanged(object sender, EventArgs e)
{
DataView dv = dt.DefaultView;
dv.RowFilter = "Location LIKE '%" + tboxSearchLocation.Text + "%'" ;
}
private void tboxSearchBand_TextChanged(object sender, EventArgs e)
{
DataView dv = dt.DefaultView;
dv.RowFilter = "Band LIKE '%" + tboxSearchBand.Text + "%'" ;
}
private void tboxSearchRID_TextChanged(object sender, EventArgs e)
{
DataView dv = dt.DefaultView;
dv.RowFilter = string.Format("RID1 LIKE '%{0}%' OR RID2 LIKE '%{0}%' OR RID3 LIKE '%{0}%' OR RID4 LIKE '%{0}%'", tboxSearchRID.Text);
//DataView dv = dt.DefaultView;
//dv.RowFilter = "RID1 LIKE '%" + tboxSearchRID.Text + "%'" ;
}
private void tboxSearchLocalNo_TextChanged(object sender, EventArgs e)
{
DataView dv = dt.DefaultView;
dv.RowFilter = "Unit LIKE '%" + tboxSearchLocalNo.Text + "%'" ;
}
private void button1_Click(object sender, EventArgs e)
{
//This button has changed to btnReturnToUsers
this.Hide();//Hide the 'current' form, form11
//show another form ( form12 )
Form12 frm = new Form12();
frm.ShowDialog();
//Close the form.(form11)
this.Close();
}
private void btnReturnToMain_Click(object sender, EventArgs e)
{
this.Hide();//Hide the 'current' form, form11
//show another form ( form2 )
Form2 frm = new Form2();
frm.ShowDialog();
//Close the form.(form11)
this.Close();
}
}
} }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.