Я получаю данные из хранимой процедуры, например:
var db = new SQLConnMgr();
var dtJobs = db.GetTableBySQL(sp);
Когда у меня есть данные, я делю их на два столбца данных и вставляю в два разных типа данных, таких как:
DataColumn[] projectsColumns = dtJobs.Columns.Cast<DataColumn>()
.Where(c => c.ColumnName == "Project Name" || c.ColumnName == "ProjectKey")
.Select(c => new DataColumn(c.ColumnName, c.DataType))
.ToArray();
DataColumn[] designGroupColumns = dtJobs.Columns.Cast<DataColumn>()
.Where(c => c.ColumnName == "DesignGroup Name" || c.ColumnName == "DesignGroupId")
.Select(c => new DataColumn(c.ColumnName, c.DataType))
.ToArray();
this.Projects = new DataTable();
this.Projects.Columns.AddRange(projectsColumns);
this.DesignGroups = new DataTable();
this.DesignGroups.Columns.AddRange(designGroupColumns);
foreach (DataRow row in dtJobs.Rows)
{
DataRow aRow = Projects.Rows.Add();
DataRow bRow = DesignGroups.Rows.Add();
foreach (DataColumn project in projectsColumns)
aRow.SetField(project, row[project.ColumnName]);
foreach (DataColumn designGroup in designGroupColumns)
bRow.SetField(designGroup, row[designGroup.ColumnName]);
}
Так что теперь яиметь две таблицы данных с разными данными и столбцами.Теперь я хочу фильтровать проекты Datatable
в событии изменения текстового поля.Итак, я делаю:
private void txtSearchJobName_TextChanged(object sender, EventArgs e)
{
DataView dvJobs = this.Projects.DefaultView;
dvJobs.RowFilter = "Project Name LIKE '%" + txtSearchJobName.Text + "%'";
}
Но когда я набираю текст, он возвращает исключение синтаксической ошибки
System.Data.SyntaxErrorException: «Синтаксическая ошибка: отсутствует операнд после оператора« Имя ». '
Это происходит, когда я пытаюсь выполнить dvJobs.RowFilter
, я отлаживаю dvJobs DataView
, и у меня есть столбец с именем проекта, я не знаю, что я ошибаюсь в синтаксисе.Привет