Я пытаюсь применить RowFilter к DataTable, но проблема с DataTable заключается в том, что заданы необычные имена столбцов.Как у некоторых, заканчивающихся на точке, или у некоторых есть пробелы и т. Д.
В качестве примера рассмотрим этот код:
public partial class Form1 : Form
{
public Button ClickMe = new Button();
public DataTable TestTable = new DataTable();
public DataGridView TestView = new DataGridView();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
this.Size = new Size(500, 500);
TestView.Size = new Size(300, 300);
ClickMe.Size = new Size(100, 50);
ClickMe.Text = "Click Me!";
ClickMe.Location = new Point(100, 400);
this.Controls.Add(TestView);
this.Controls.Add(ClickMe);
TestView.Visible = true;
TestTable.Columns.Add(new DataColumn("Addressnumb."));
TestTable.Columns.Add(new DataColumn("SecondColumn"));
TestView.DataSource = TestTable;
ClickMe.MouseClick += ClickMe_MouseClick;
for (int i = 0; i < 10; i++)
{
DataRow Row = TestTable.NewRow();
Row["Addressnumb."] = i.ToString();
Row["SecondColumn"] = "Text " + i.ToString();
TestTable.Rows.Add(Row);
}
}
private void ClickMe_MouseClick(object sender, MouseEventArgs e)
{
MessageBox.Show("Filtering for SecondColumn");
TestTable.DefaultView.RowFilter = "SecondColumn LIKE '%1'";
MessageBox.Show("Filtering for Addressnumb.");
TestTable.DefaultView.RowFilter = "Addressnumb. LIKE '%1'";
}
}
Есть ли способ, как можно избежать символов илизамаскировать их, что RowFilter все еще может быть применен?