C# &引用;“不能执行”;例如;关于System.Decimal和System.String;

C# &引用;“不能执行”;例如;关于System.Decimal和System.String;,c#,C#,我无法通过DataGridView搜索价格(十进制),此代码适用于字符串类型,但在我尝试搜索价格时出现错误:“无法对System.decimal和System.string执行”Like“。 代码如下: BindingSource bs = new BindingSource(); bs.DataSource = dataGridView1.DataSource; bs.Filter = "price like '%" + Convert.ToDecimal(textBox16.Text) +

我无法通过
DataGridView
搜索价格(十进制),此代码适用于字符串类型,但在我尝试搜索价格时出现错误:“无法对System.decimal和System.string执行”Like“。
代码如下:

BindingSource bs = new BindingSource();
bs.DataSource = dataGridView1.DataSource;
bs.Filter = "price like '%" + Convert.ToDecimal(textBox16.Text) + "%'";
dataGridView1.DataSource = bs;

您试图将
十进制
用作
字符串
,这就是为什么会出现错误。您必须对数值使用运算符,如
、=

BindingSource bs = new BindingSource();
bs.DataSource = dataGridView1.DataSource;
bs.Filter = "price > " + Convert.ToDecimal(textBox16.Text) ;
dataGridView1.DataSource = bs;

为什么要对小数点使用
like
用于与占位符进行模式匹配。你真的想要一个简单的相等性检查吗?
一样,只针对字符串。一个数值不能“像”另一个数值。但是,您可以将数值转换为字符串,然后对转换后的值使用
like
。考虑到您将字符串转换为另一个字符串的结果连接在一起,您能否不进行十进制转换?我尝试了不进行十进制对话,但它仍然给出了一个错误。你没有解决第一个评论中提出的问题。如果这是因为他们不清楚,我会用一个具体的例子问:你真的想搜索
23
的价格来返回价格为
1234
的行吗?@user2263271,请确保在时间到期时将其标记为答案。@user2263271-我同意neoistheone:如果这个答案对你有帮助,那么你应该这样做。