C# BindingSource无法执行';比如';对System.DateTime和System.String的操作
我想使用搜索框过滤datagridview,我有一个可以很好地处理字符串的函数,但我不知道为什么在将此函数用于包含int/date值的列时会出现异常:C# BindingSource无法执行';比如';对System.DateTime和System.String的操作,c#,datagridview,datagridviewcolumn,C#,Datagridview,Datagridviewcolumn,我想使用搜索框过滤datagridview,我有一个可以很好地处理字符串的函数,但我不知道为什么在将此函数用于包含int/date值的列时会出现异常: public void SearchTable(TextBox searchBox, String columnNameToSearch, int Type) { BindingSource bs; switch (Type) { case NUMERIC_COLU
public void SearchTable(TextBox searchBox, String columnNameToSearch, int Type)
{
BindingSource bs;
switch (Type)
{
case NUMERIC_COLUMN:
bs = new BindingSource
{
DataSource = _dgv.DataSource,
Filter = columnNameToSearch + " = " + searchBox.Text.Trim()
};
_dgv.DataSource = bs;
break;
case TEXT_COLUMN:
bs = new BindingSource
{
DataSource = _dgv.DataSource,
Filter = columnNameToSearch + " LIKE '" + searchBox.Text.Trim() + "%'"
};
_dgv.DataSource = bs;
break;
}
}
这是一个例外:
当我尝试在SQL server中进行查询时,查询工作正常DateTime是一种数字类型-你不能像处理数字那样。1等于10吗?使用类似于>或@puropoix的东西谢谢你的回答我使用的“=”对我不起作用我得到:无法在System.DateTime和System.Int32上执行“=”操作。假设要搜索的列实际上是DateTime类型,你必须将
搜索框中的内容转换为相同的类型。使用DateTime.TryParse()…非常感谢您在搜索后我在筛选器中错过了“”,谢谢!