Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.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_Search_Webforms - Fatal编程技术网

C# 用于提供动态过滤器的选项

C# 用于提供动态过滤器的选项,c#,sql,search,webforms,C#,Sql,Search,Webforms,我目前正在从事一个需要动态过滤器选项的项目。这将是一个组合框,用于确定过滤器类型,以及一个文本框,用于获取搜索键。我想做的是让它尽可能充满活力。如果客户决定他们需要一个新的,我不想回到源代码中去修改它 数据目前分布在两个数据库中,我对此没有发言权。这阻碍了实体框架和动态LINQ的使用。我目前的想法是将组合框绑定到存储在数据库中的“过滤器”上,并使用T-SQL执行以获取结果,然后使用sp_executesql将其取回,这一点可以看到 我想就如何实现这一目标提出一些其他建议。我觉得应该有一种优雅的方

我目前正在从事一个需要动态过滤器选项的项目。这将是一个组合框,用于确定过滤器类型,以及一个文本框,用于获取搜索键。我想做的是让它尽可能充满活力。如果客户决定他们需要一个新的,我不想回到源代码中去修改它

数据目前分布在两个数据库中,我对此没有发言权。这阻碍了实体框架和动态LINQ的使用。我目前的想法是将组合框绑定到存储在数据库中的“过滤器”上,并使用T-SQL执行以获取结果,然后使用sp_executesql将其取回,这一点可以看到


我想就如何实现这一目标提出一些其他建议。我觉得应该有一种优雅的方式可以用C#来完成思考,但我想不起来。

如果您使用的是DropDownList(此处命名为yourDdl),并且希望用数据库中的数据填充它,我建议您这样做:

yourDdl.DataSource = getListSelection("AtecoYear = 2004", true);
yourDdl.DataTextField = "ComboText";
yourDdl.DataValueField = "ComboID";
yourDdl.DataBind();
getListSelection方法(最好的方法是将其放入适当的类中)连接到数据库,提取数据并将其放入DataTable:

public DataTable getListSelection(string filter_status)
{
    DataTable dt;
    string cmdText = "select ExampleID as ComboID, ExampleName as ComboText from ExampleTable";

    SqlConnection objIdbConnection = new SqlConnection(yourConnectionString);
    SqlCommand cmd = new SqlCommand();
    cmd.CommandText = cmdText;
    cmd.Connection = objIdbConnection;
    cmd.CommandTimeout = 30; // seconds
    cmd.Connection.Open();

    IDataAdapter da = new SqlDataAdapter((SqlCommand)cmd);
    DataSet myDataTable = new DataSet();
    da.Fill(myDataTable);
    objIdbConnection.Close();

return myDataTable.Tables[0];

}

对不起,我可能错了,但您似乎在向我展示如何将数据放入组合框。这不是问题,问题是我的过滤器尽可能动态,这样我就不必维护我的源代码来添加新的过滤器。对不起,我想我误解了你的问题。看着小提琴,我觉得你的工作差不多完成了。您可能只需要将CommandText替换为SP的执行。