0

データテーブルを含む変数があり、値が 0 の場合は「いいえ」文字列に変更したいという条件があります。

これが私の元のコードです

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

それでもエラーが発生します。誰か助けてもらえますか?

4

1 に答える 1

1

DataTable の行のフィールドの値を条件付きで変更したいだけの場合は、次のようなものを使用します。

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

編集

あなたがやろうとしていることは不可能だと思います。コメントに表示する例外は、その理由を示しています。

入力文字列は、正しい形式ではありませんでした。例外列に格納できませんでした。予想される型は Int64 です。

Int64この例外は、 (Long)を受け入れるように設定された DataTable 列に String 値を格納しようとしていることを示しています。そんなことはできません。

コントロールの要素にバインドされた値に基づいて、実行時にユーザーに表示するテキストを指定できるカスタマイズ可能なテンプレートを提供する、使用できるコントロールが多数あります。

たとえば、DataTable を ListView にバインドする場合、「例外」列をItemTemplateにバインドし、次のようなコードを使用して、レコードの値が 0 の場合は「いいえ」を表示し、それ以外の場合はフィールドの値を表示します。

<%#IIf(Eval("exception") = 0, "No", Eval("exception").ToString())%>
于 2013-04-19T03:20:19.643 に答える