我有一个包含4列的网格,即标题,描述,关键字,C#.net中的日期 使用搜索按钮和文本框。
当我写标题+说明+关键字+日期时,它会通过点击搜索按钮返回相关数据。
如果我写关键字+日期+保持描述和标题为null,它将从网格返回相关数据。等等这4栏的其他组合。
也就是说,它正在从每列中的字段进行搜索,并且组合动态变化
我想在SQL SERVER中为它创建存储过程或函数。有什么建议吗?...提前谢谢
答案 0 :(得分: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)
将永远是真的。
答案 1 :(得分: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;
}