在Visual Studio中使用相同的更改文本框按名称和编号搜索

时间:2018-11-04 13:00:22

标签: vb.net

我具有使用Visual Studio在Access db中进行搜索的代码,以在SerialNumber列中进行搜索:

**Service**
service_id
service_name
status
is_active

**Plan**
plan_id
service_id
plan_name
plan_cost

**Subscribe**
subscribe_id
plan_id
person_name

SELECT DISTINCT s.service_id FROM service s JOIN plan p on s.service_id=p.service_id join
subscribe su on p.plan_id=su.plan_id WHERE
(s.status='Published' AND s.is_active=1) GROUP BY su.plan_id 
ORDER BY COUNT(su.subscribe_id) DESC

如果我也要在具有相同更改的文本框的“名称”列中进行搜索怎么办?

序列号列中的数据类型是数字,在名称文本中。

2 个答案:

答案 0 :(得分:1)

处于BindingSource.Filter Property documentation状态的备注

  

要形成过滤器值,请指定列名,后跟运算符和要过滤的值。可接受的过滤器语法取决于基础数据源。如果基础数据源是DataSet,DataTable或DataView,则可以使用为DataColumn.Expression属性记录的语法指定布尔表达式。

因此,假设满足上述条件并查看记录的语法:

SpringDataBindingSource.Filter = String.Format("SerialNumber = '{0}' OR Name = '{0}'", TextBox2.Text)

您可能希望将TextBox2.Text中的任何单引号替换为两个单引号,以对其进行转义。

答案 1 :(得分:0)

感谢所有在这里帮助我并给我带来想法的人。

我得到的解决方案是,首先在MS Access DB中将序列号列数据类型从数字转换为短文本,然后使用以下代码:

 SpringDataBindingSource.Filter = "SerialNumber LIKE '%" & TextBox1.Text & "%'" & " OR  Name LIKE '%" & TextBox1.Text & "%'"

再次感谢大家:)