2014-02-19 147 views
0

原谅如果问题重复,我是新来这个网站。带有多个值的SQL Server LIKE语句?

一直试图为保存和组织文档的程序创建搜索文本框。该软件基于数据库,并且一次只能搜索一列。我需要它来查找任何列中的任何信息(预期日期)。

下面是代码:

private void textBox2_TextChanged(object sender, EventArgs e) 
{ 
     DataView vista = new DataView(tablaSql); 
     vista.RowFilter = string.Format("asunto_corres LIKE'%{0}%'", textBox2.Text); 
     dgTodo.DataSource = vista; 
}   

它的工作原理,但只能与指定的列名。

任何帮助,使这个文本框寻找信息在任何领域/专栏。

感谢

+0

你必须列构建_SQL-like_柱(用长'或')。 **但是**:1)您可以检查模式(不需要对所有列进行硬编码),并且2)使用_SQL_参数,不要使用用户输入构建SQL命令(关于_SQL_ injection?)。 –

+0

@Adriano在这种情况下SQL注入不是一个问题(RowFilter在内存视图中工作) – Steve

+0

您可以使用全文搜索引擎的CONTAINS和FREETEXT子句,但如果您的搜索是一个小块的应用程序。 – veljasije

回答

2

尝试:

vista.RowFilter = string.Format("{0} LIKE'%{1}%'", fieldName, textBox2.Text); 
0

您可以通过添加一些 “或” 运营商做:

vista.RowFilter = string.Format("asunto_corres LIKE'%{0}%' OR Column2 LIKE'%{0}%' OR ...", textBox2.Text);