2011-05-11 42 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; 
}