2012-08-14 17 views
0

我有一個sqlite數據庫連接到DataTableDataTable綁定到datagridview。基於列數據過濾DataTable並將其分配給C#中的DataGridView

我有一個名爲事件類型的列,我想將事件類型分成兩個不同的datagridviews。

第一個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"); 
    } 
+1

你能證明你的代碼? – Raghuveer 2012-08-14 13:45:33

+0

您可以嘗試解釋您正在嘗試做什麼以及問題是否更好一些。例如,當你說當前行剛剛變爲空白時,你是什麼意思?您擁有的代碼應該完美地用於過濾數據視圖。最好的情況是,如果您只給出重現問題所需的代碼的最小示例的整個.cs文件。 – 2012-08-14 16:47:09

+0

我只是爲學校創建一個簡單的任務管理器,以便用戶可以輸入事件(任務,考試,會議,評論,實驗室等),並且我有兩個datagridviews,一個標記爲當前事件,我希望所有事件eventType「考試」。在標記爲即將到來的第二個DatagridView中將包含所有事件類型爲「Exam」的事件。總的來說,我只想將事件整理到2個數據網格中。上面的代碼的問題是,而不是篩選條目,它會使所有的事件,無論事件是什麼...去空白(每個事件從網格中刪除,但不是數據庫。 – cougar 2012-08-14 17:52:50

回答

1

更新:

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

我試過了我仍然遇到同樣的問題:/它清空所有含有空白條目的行,而不是僅包含事件類型爲「Exam」的行。如果rowfilter是錯誤的或者其他什麼,它是否清楚? – cougar 2012-08-14 14:12:52

+0

嘗試使用此表達式myDataView .RowFilter = string.Format(「EventType ='{0}'」,「Exam」);' – Raghuveer 2012-08-14 14:18:00

+0

我只是在想這個,但不幸的是我們仍然得到了相同的結果(空白條目) – cougar 2012-08-14 14:22:59

相關問題