2

我想遍历一个数据包并更改该数据表中特定列的值。

例如:数据库返回Request_IDDesc和。该列包含整数值。我不想向用户显示整数值。我想根据该列中返回的整数值将其转换为字符串值。DateStatus_IndStatus_Ind

if Status_Ind = 1 then 
    'the values changes to Published
4

2 回答 2

4

假设您的 DataTable 定义如下:

Dim dt As DataTable

首先,您需要在 DataTable 中添加一个新列来保存状态:

dt.Columns.Add("Status", Type.GetType("System.String"))

现在循环遍历 DataTable 并更新状态列:

For Each dr As DataRow In dt.Rows
    Select Case CInt(dr.Item("Status_Ind"))
        Case 1
            dr.Item("Status") = "Published"
        Case 2
            dr.Item("Status") = "Some other Status"
        Case Else
            dr.Item("Status") = "Unknown"
    End Select
Next

然后你可以删除整数列:

dt.Columns.Remove("Status_Ind")
于 2012-01-20T10:30:26.023 回答
3

您可以通过创建另一列来做到这一点:

Dim dt As New DataTable
dt.Columns.Add(New DataColumn("status_int", GetType(Int32)))
dt.Columns.Add(New DataColumn("status_str", GetType(String)))

'add example row - not publised
Dim newDr0 As DataRow = dt.NewRow
newDr0(0) = 0
dt.Rows.Add(newDr0)

'add example row - publised
Dim newDr1 As DataRow = dt.NewRow
newDr1(0) = 1
dt.Rows.Add(newDr1)

For Each dr As DataRow In dt.Rows
    Select Case dr(0)
        Case 1
            dr(1) = "Published"
        Case Else
            dr(1) = "Not published"
    End Select
Next

For Each dr In dt.Rows
    Console.WriteLine(dr(0).ToString + " " + dr(1).ToString)
Next
于 2012-01-20T10:33:38.850 回答