Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 由存储过程或函数生成的动态查询_C#_Sql Server - Fatal编程技术网

C# 由存储过程或函数生成的动态查询

C# 由存储过程或函数生成的动态查询,c#,sql-server,C#,Sql Server,在C#net中,我有一个包含4列的网格,即标题、描述、关键字、日期 带有搜索按钮和文本框 当我写标题+描述+关键字+日期时,它将通过单击搜索按钮返回相关数据 若我写关键字+日期+保持描述和标题为空,它将从网格返回相关数据。依此类推这4列的其他组合 也就是说,它从每个列中的字段进行搜索,并且组合会动态变化 我希望在SQL SERVER中为其提供一个存储过程或函数。有什么建议吗?。。提前感谢您您可以创建一个包含四个参数(每个参数用于您的选项)和以下SQL语句的过程 CREATE PROC Searc

在C#net中,我有一个包含4列的网格,即标题、描述、关键字、日期 带有搜索按钮和文本框

当我写标题+描述+关键字+日期时,它将通过单击搜索按钮返回相关数据

若我写关键字+日期+保持描述和标题为空,它将从网格返回相关数据。依此类推这4列的其他组合

也就是说,它从每个列中的字段进行搜索,并且组合会动态变化


我希望在SQL SERVER中为其提供一个存储过程或函数。有什么建议吗?。。提前感谢您

您可以创建一个包含四个参数(每个参数用于您的选项)和以下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或@title为null)
将始终为true。

在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;
}

我正在尝试创建过程,但问题是如何组合这4个参数,因为这将是运行时用户希望搜索的参数组合。这是否意味着您不知道用户如何填写输入字段?你能发送一个用户输入的例子吗?我的问题解决了。。我是这个页面的新手,所以不允许发布我要求的屏幕。。。。谢谢你的帮助…你的问题解决了吗?如果答案是肯定的,那么如果你觉得有帮助的话,就把任何答案标记为接受。