C# 中的 SQL 数据网格筛选

本文关键字:网格 筛选 数据网 数据 中的 SQL | 更新日期: 2023-09-27 17:57:00

我在Visual Studio中有一个连接的SQL数据库,并在网格中显示其内容。我创建了一个下拉菜单,其中列名称作为可选选项和一个文本字段来过滤特定内容,例如,下拉列表 = "开始" - 文本字段 = 14.03.2015 = 过滤列"开始" 对于每个包含"14.03.2015"的条目 - 并将其显示在网格中。

我基本上完成了这部分。我面临的唯一问题是每当我输入日期时 - 例如,14.03.2015 它只显示从 00:00:00 开始的日期 - 其他不在 00:00:00 开始的条目被忽略,我不知道如何修改它才能正常工作。

网格如下所示:http://abload.de/img/untitled123yqkyn.png

我使用以下 C# 代码进行过滤:

protected void Button1_Click(object sender, EventArgs e)
{
    string FilterExpression = string.Empty;
    if (DropDownList1.SelectedValue.ToString().Equals("Start"))
    {
        FilterExpression = string.Format("Start  = '{0}'", TextBox1.Text);
    }
    else if (DropDownList1.SelectedValue.ToString().Equals("End"))
    {
        FilterExpression = string.Format("End  = '{0}'", TextBox1.Text);
    }
    else if (DropDownList1.SelectedValue.ToString().Equals("Creation Time"))
    {
        FilterExpression = string.Format("DateTimeCreated = '{0}'", TextBox1.Text);
    }
    else if (DropDownList1.SelectedValue.ToString().Equals("Last Modified"))
    {
        FilterExpression = string.Format("LastModifiedTime = '{0}'", TextBox1.Text);
    }
    else
    {
        FilterExpression = string.Concat(DropDownList1.SelectedValue, " Like '%{0}%'");
    }
    SqlDataSource1.FilterParameters.Clear();
    SqlDataSource1.FilterParameters.Add(new ControlParameter(DropDownList1.SelectedValue, "TextBox1", "Text"));
    SqlDataSource1.FilterExpression = FilterExpression;
}

请原谅代码的质量,我对 C# 和编程本身完全陌生。我希望有人能够帮助我。

C# 中的 SQL 数据网格筛选

我可以让日期筛选(和排序)与 datagridview 控件一起使用的唯一方法是将列类型显式设置为 DateTime。 可以在设计器中执行此操作,也可以在添加列时使用 typeof(DateTime) 动态执行此操作,如下所示:

column.ValueType = typeof(DateTime);

如果不这样做,则筛选和排序会将列视为纯文本。