在asp.net(vb)中编辑datatable变量中的值

时间:2013-04-19 03:01:18

标签: asp.net vb.net ado.net datatable

我有一个包含数据表的变量,如果值为0,我有条件,我想将其更改为“No”字符串。

这是我的原始代码

dt = BrowseServiceTypeMaster(ServiceTypeName)
lvServiceType.DataSource = dt

For i As Integer = 0 To dt.Rows.Count - 1
    If dt(i)("exception").ToString = "0" Then
        dt(i)("exception") = "No"
    End If
Next

以下是我将其更改为:

For i As Integer = 0 To dt.Rows.Count - 1
    If dt(i)("exception").ToString = "0" Then
        dt(i)("exception").Fill = "No"
    End If
Next

它仍然给我一个错误,任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

如果您只想有条件地更改DataTable中行的字段值,请使用以下内容:

For Each row As DataRow In dt.Rows
    If row("exception") = "0" Then
        row("exception") = "No"
    End If
Next

修改

我担心你要做的事情是不可能的。您在评论中显示的例外情况说明了原因:

  

输入字符串的格式不正确。无法存储   例外列。预期的类型是Int64。

此异常告诉您,您正在尝试将String值存储在设置为接受Int64(Long)的DataTable列中。你不能这样做。

您可以使用许多控件来提供可自定义的模板,这些控件允许您在运行时根据绑定到该控件元素的值向用户指定要显示的文本。

例如,如果您将DataTable绑定到ListView,则将“异常”列绑定到ItemTemplate并使用此类代码在记录值为0时显示“否”并显示字段值在所有其他情况下:

<%#IIf(Eval("exception") = 0, "No", Eval("exception").ToString())%>