2011-05-11 79 views
0

我有一個4欄的網格,即標題,描述,關鍵字,日期在C#.net 與搜索按鈕和文本框。由存儲過程或函數生成的動態查詢

當我寫標題+描述+關鍵字+日期時,它將通過單擊搜索按鈕返回相關數據。

如果我編寫關鍵字+日期+保留描述和標題爲null,它將返回來自網格的相關數據。等這個4列的其他組合。

也就是說,它是在每列和組合領域搜索動態變化

我希望有一個存儲過程或函數它在SQL SERVER。提前

+0

您是否解決了問題?如果是,那麼如果您發現它真的有幫助,則將所有答案都標記爲已接受。 – 2011-05-11 12:18:25

回答

0

,您可以創建四個參數(各爲你的選擇)的程序和下面的SQL

CREATE PROC Search(
    @title VARCHAR(20) NULL, ... 
AS SELECT * FROM your_table WHERE (title = @title OR @title IS NULL) etc. 

反正什麼建議嗎?..謝謝,你應該分析輸入獲得值爲每個參數。因此,當您將null傳遞給@title參數時,WHERE條件(title = @title OR @title IS NULL) 將始終爲真。

+0

我試圖創建過程,但問題是如何組合這些4參數,因爲它將在運行時期望參數用戶想要搜索的組合 – Sharma 2011-05-11 11:41:15

+0

這是否意味着您不知道用戶如何填充輸入字段?你能發送一個用戶輸入的例子嗎? – 2011-05-11 12:04:46

+0

我得到了我的問題解決..我新這個頁面,因此不允許發佈我的要求屏幕....謝謝你的幫助... – Sharma 2011-05-12 04:56:07

0

在C#中做一個函數,傳遞它包含列名和表名的字符串數組,這個函數將返回查詢字符串。

public string BuildQuery(string[] columnNames, string tableName) 
{ 
string query = string.Empty; 

query = "SELECT "; 
foreach(string str in columnNames) 
query += str + ", "; 
query = query.Substring(0, query.Length - 1); 
query += " FROM " + tableName; 

return query; 
}