2014-02-19 64 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);