2016-08-02 91 views
0

我目前正在執行實習生管理的項目。每個實習生都有項目。另外每個項目都有步驟/要點。如果實習生完成了一個步驟,項目會增加其進度。所以基本上,每個項目都有一個進展。操作3層體系結構中的datagridview列

我正在使用自定義的DataGridViewProgressColumn。將此列添加到我的datagridview後,我可以將其值設置爲某個值來更改它的值。

//Last index of datagridview is progresscolumn. 
dataGridView1.Rows[i].Cells[dataGridView1.ColumnCount - 1].Value = value; 

這個值來自數據庫,據我所知,我不應該從UI層訪問數據庫。但datagridview在UI層。

我有2個解決方案,在我的腦海:

  1. 設定在數據訪問層progresscolumn的每個值:我不認爲這是可能的,雖然我認爲這是最好的解決辦法:我只是不能改變的值不放置progressColumn。

  2. 在UI層設置每一個progresscolumn的值,可能是「正在工作但違反架構」的解決方案。

我該如何解決這個問題?謝謝。

+0

我的數據庫是ms-sql,如果它很重要。 –

+0

進度值應該是模型的一個屬性,您應該將'DataGridView'綁定到'Model'列表。您的Service Layer中的方法應該返回'Model'列表。 –

回答

0

無論如何,我只是使用了一個返回int值的DAL函數。該函數計算該值並將其返回。

dataGridView1.Rows[i].Cells[dataGridView1.ColumnCount - 1].Value = DAL.getValue(rowID);