2016-03-03 99 views
0

我在檢查DataTable中特定列的值時遇到問題。 我的DataTable來自一個SQL查詢,它在這種情況下有8列。ASP.NET C#DataTables替換表中特定列中的特定值

我的第三列是一個名爲Status的列。在數據庫狀態將被保存爲數字。 1 =「打開」,2 =「工作中」,3 =「關閉」。

現在我遍歷整個表格,直到這個列,我想檢查值是1 2還是3,並用相應的狀態名稱替換1 2或3。 (我在迭代,因爲會有更多的列將被修改,所以不僅每行中的列2,而且4,5 - 但它們將像列2一樣。所以如果我瞭解一個,我可以做其他類似的)。

但我不知道如何檢查值,我試過了.contains和equals方法。

這裏是我的代碼:

//for each row 
for (int i = 0; i < dt.Rows.Count; i++) 
{ 
      //search colums 
      for (int j = 0; j < dt.Columns.Count; j++) 
      { 
       if (j == 2) 
       { 
        if (dt.Columns[j].Equals("1") == true) 
        { 
        // dt.Columns[j].value should be replaced with "open"; 
        } 

        if (dt.Columns[j].Equals("2") == true) 
        { 
        // dt.Columns[j].value should be replaced with "in-work"; 
        } 

        if (dt.Columns[j].value == "3") 
        { 
        // dt.Columns[j].value should be replaced with "closed"; 
        } 
       } 
} 

所以,我怎麼能檢查列的值,並用字符串替換?

在此先感謝!

回答

0

你可以試試看這個:

if(dt.Rows[i][j].ToString() == "1") 

,代之以這樣的:

dt.Rows[i][j] = "Open"; 
+0

謝謝,這對我有用 – Azeristar

0

由於dt.Columns[j]DataColumn其轉換爲字符串:

dt.Columns[j].ToString() 

,然後你可以做

dt.Columns[j].ToString() == "1" 

要重命名的列只使用屬性Caption

var col = dt.Columns[j]; 
col.Caption = "in-work"; 
+0

這並沒有爲我工作,目前還沒有做出修改,但我已經試過類似下面一個答案,這是工作。但是,不過謝謝你:) – Azeristar