2013-04-19 2 views
0

У меня есть переменная, которая содержит datatable, и у меня есть условие, если значение равно 0, которое я хочу изменить в строку «Нет».Редактировать значение в переменной datatable в asp.net (vb)

Вот мой исходный код

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 

Он по-прежнему дает мне ошибку, кто-нибудь может мне помочь?

+0

Показать? Показать где? –

+0

@JayRiggs, я имею в виду, что я бы установил значение «0» в значение «нет» – sephtian

ответ

1

Если вы хотите только условно изменить значение поля в строке в DataTable затем использовать что-то вроде этого:

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

Редактировать

Я боюсь, что ты «Я пытаюсь сделать это невозможно. Исключение, которое вы укажете в своем комментарии, объясняет почему:

Строка ввода не в правильном формате. Не удалось сохранить в столбце исключения . Ожидаемый тип - Int64.

Это исключение говорит вам, что вы пытаетесь сохранить значение String в столбце DataTable, который установлен для принятия Int64 (длинный). Вы не можете этого сделать.

Существует несколько элементов управления, которые вы можете использовать, предлагая настраиваемые шаблоны, которые позволяют указывать во время выполнения какой текст отображать пользователю на основе значения, связанного с элементом этого элемента управления.

Например, если вы привязывали свой DataTable к ListView, вы привязывали бы свой столбец «исключение» к ItemTemplate и использовали бы такой код, чтобы отображать «Нет», когда значение записи равно 0 и отображает значение поля во всех других случаев:

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

спасибо за ваш ответ, но он возвращает другую ошибку «Строка ввода не была в правильном формате. Не удалось сохранить в исключении. Столбец. тип Int64. " – sephtian

+0

Вам нужно изменить базовый тип этого столбца на 'string', если вы хотите сохранить« Нет ». Похоже, что в настоящее время это 'long' (' Int64'). Является ли DataTable привязанным к физической таблице в базе данных или просто созданной в памяти? – Tim

+0

thanks ray, <% # IIf (Eval ("exception") = 0, "No", Eval ("exception"). ToString())%> работает хорошо :) – sephtian

Смежные вопросы