【问题标题】:Filtering DataTable based on column data and assign it to DataGridView in C#根据列数据过滤DataTable并将其分配给C#中的DataGridView
【发布时间】:2012-08-10 19:29:32
【问题描述】:

我有一个连接到DataTable 的sqlite 数据库,并且DataTable 绑定到一个datagridview。

我有一个名为事件类型的列,我想将事件类型分成两个不同的数据网格视图。

第一个 datagridview 将包含具有除“Exam”之外的事件类型的所有行,第二个 datagridview 将仅包含包含事件类型“Exam”的行。

我一直在阅读有关过滤器的内容,但没有任何工作可做,并且不确定解决此问题的最佳方法。

datagridviews 都绑定到同一个DataTable。 我对编程相当陌生,并且正在开发一个个人应用程序,只是想习惯 C# 和 .NET。

有人对如何解决这个问题有任何想法吗?

这段代码给了我最大的进步,除了它使所有当前行都变成空白。它不会将其保存到数据库或任何东西中。

    public void EventTypeFilter()
    {
        var myDataView = dataSourceDataSet.Event.DefaultView;
        EventsDataGridView.DataSource = myDataView;
        myDataView.RowFilter = string.Format("EventType <> '{0}'", "Exam");   
    }

【问题讨论】:

  • 能否请您尝试并解释您正在尝试做什么以及问题是什么好一点。例如,当您说当前行只是空白时,您是什么意思?您拥有的代码应该可以完美地过滤数据视图。最好的办法是提供一个最小示例的整个 .cs 文件,其中仅包含重现问题所需的代码。
  • 我只是为学校创建一个简单的任务管理器,以便用户可以输入事件(作业、考试、会议、评论、实验室等),我有两个数据网格视图,一个标记为当前事件我想要除 eventType "Exam" 之外的所有事件。在标记为即将到来的第二个 DatagridView 中,将包含具有事件类型“考试”的所有事件。所以总的来说,我只希望将事件分类到 2 个数据网格中。上面代码的问题不是过滤条目,而是会生成所有事件,而不管事件是什么......变为空白(从网格中删除每个事件,但不是从数据库中删除。

标签: c# database sqlite datagridview filter


【解决方案1】:

更新:

public void EventTypeFilter()
{
    DataTable table = dataSourceDataSet.Tables["TableName"];        
    table.DefaultView.RowFilter = string.Format("EventType <> '{0}'", "Exam");
    EventsDataGridView.DataSource = table;           
}

【讨论】:

  • 我试过了,但仍然遇到同样的问题:/ 它会清除所有包含空白条目的行,而不仅仅是事件类型为“Exam”的行。如果RowFilter是错误的或者什么的
  • 试试这个表达式myDataView.RowFilter = string.Format("EventType = '{0}'", "Exam");
  • 我也是这么想的,但不幸的是我们仍然得到相同的结果(空白条目)。
  • 您是否尝试过不使用任何过滤器?
  • 什么意思?如果没有过滤器,它将添加所有的事件类型,但它并不像我想要它到 span>一样过滤“考试”
猜你喜欢
  • 2021-07-10
  • 2013-01-07
  • 2021-05-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-16
  • 2019-03-15
  • 2015-10-24
相关资源
最近更新 更多