Я использую DataTable
, чтобы заполнить DataGridView
для поиска / фильтра.
DataGridView показывает фактические имена столбцов базы данных.
Но я хочу изменить названия этих столбцов.например, tbl_Users
имеет столбец с меткой LocalNo
, который я хочу изменить на Unit No.
Вот мой код :
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 + "%'" ;
}
Я прочиталэтот пост здесь: Как изменить имя столбца DataTable? Первый ответ имеет смысл для меня, но я не знаю, где мне нужно добавить новые строки.Я пробовал в нескольких местах, но без радости.