比较用于过滤数据表c#的文本框

Posted

技术标签:

【中文标题】比较用于过滤数据表c#的文本框【英文标题】:Comparing Text boxes to be used in filtering data table c# 【发布时间】:2018-04-23 20:27:39 【问题描述】:

我想将两个文本框与数据表中的数据进行比较,并使用此比较操作来过滤日期表。 例如:我想显示所有具有 x 值的数据(行和列),其中:

textbox1.text>x>textbox1.text

我在字符串格式中使用了“Like”运算符来获取与文本框中的值完全匹配的值,但我无法进行所需的范围过滤操作

这是我与指定问题相关的代码:

 dv.RowFilter = string.Format("Type Like '%0%' and Gain Like" +
            "'%1%'" +
            "and Year Like'%2%' and MotorPower Like '%3%'" +
            "and Profit Like '%4%'", textBoxType .Text,textBoxGain.Text
            , textBoxYear.Text, textBoxBiggerthan.Text, textBoxKar.Text);
 dataGridView1.DataSource = dv;

我有另一个名为 textBoxSmallerthan.Text 的输入文本框 并且我想在 textBoxBiggerthan.TexttextBoxSmallerthan.Text 之间的数据表(datagridview)中设置 MotorPower 列的范围

【问题讨论】:

【参考方案1】:

文档here 显示数字不需要用单引号括起来。所以格式是:

Columnname < Number

所以最终的过滤器应该是这样的:

dv.RowFilter = string.Format("Type Like '%0%' and Gain Like" +
            "'%1%'" +
            "and Year Like'%2%' and MotorPower > 3 and MotorPower < 4" +
            "and Profit Like '%4%'", textBoxType .Text,textBoxGain.Text
            , textBoxYear.Text, textBoxSmallerthan.Text, textBoxBiggerthan.Text, textBoxKar.Text);
 dataGridView1.DataSource = dv;

【讨论】:

抱歉,该代码不起作用。 "字符串未被识别为有效的日期时间" 您需要将字符串格式化为有效的日期时间。链接中的示例是 m/d/y 格式 我尝试将范围组件转换为日期时间,但出现了相同的错误消息。 另外我认为使用日期时间类型的数据来比较电机功率等整数是不合适的,请问有其他建议吗? 对不起,我误读了我以为您在两个日期之间检查的问题。不知道我为什么这么想。我会更新我的答案

以上是关于比较用于过滤数据表c#的文本框的主要内容,如果未能解决你的问题,请参考以下文章

用于过滤子表单数据表的未绑定文本框

C# Datagrid 的 WHERE 子句的文本框

c# .net winform 在文本框里输入数据(用于查找的参数) 然后回车将gridview中的那条数据处于选中状态

在 C# winforms 应用程序中使用文本框过滤 Treeview

C#比较大小

C# - 上次编辑的文本框未保存到数据库