我具有使用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
如果我也要在具有相同更改的文本框的“名称”列中进行搜索怎么办?
序列号列中的数据类型是数字,在名称文本中。
答案 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 & "%'"
再次感谢大家:)