VB.NET question
Правила форума
Пожалуйста, ознакомьтесь с правилами данного форума
Пожалуйста, ознакомьтесь с правилами данного форума
-
- Завсегдатай
- Сообщения: 213
- Зарегистрирован: 17 фев 2003, 16:05
- Откуда: NN - Montreal - Charlottetown - Montreal
VB.NET question
Вывожу в DataGrid некоторые значения, часть из их которых нули. Как мне сделать чтобы вместо нулей ничего ве выводилось (пустые ячейки), не перебирая все значения. Поигрался с DataSet.Expression, что-то ничего не получается.
-
- Частый Гость
- Сообщения: 10
- Зарегистрирован: 03 мар 2003, 11:04
Re: VB.NET question
1. используй IIF функцию в DataColumn.Expression проперти.
2. Сделай свой рендеринг через ItemDataBound event. например.
2. Сделай свой рендеринг через ItemDataBound event. например.
-
- Завсегдатай
- Сообщения: 213
- Зарегистрирован: 17 фев 2003, 16:05
- Откуда: NN - Montreal - Charlottetown - Montreal
Re: VB.NET question
Спасибо. Заработало. Вставил строчку:Барабан писал(а):1. используй IIF функцию в DataColumn.Expression проперти.
2. Сделай свой рендеринг через ItemDataBound event. например.
DataSet11.Tables("Table1").Columns("Sale1").Expression = IIf("Sale" = "0", "", "Sale")
-
- Завсегдатай
- Сообщения: 213
- Зарегистрирован: 17 фев 2003, 16:05
- Откуда: NN - Montreal - Charlottetown - Montreal
Re: VB.NET question
Рано радовался. После проверки оказалось, что IIf("Sale" = "0", "", "Sale") всегда выдает "Sale", даже когда оно равно нулю. Что тут неправильно?Alexan писал(а):Спасибо. Заработало. Вставил строчку:Барабан писал(а):1. используй IIF функцию в DataColumn.Expression проперти.
2. Сделай свой рендеринг через ItemDataBound event. например.
DataSet11.Tables("Table1").Columns("Sale1").Expression = IIf("Sale" = "0", "", "Sale")
-
- Пользователь
- Сообщения: 75
- Зарегистрирован: 26 фев 2003, 20:19
- Откуда: toronto
-
- Завсегдатай
- Сообщения: 213
- Зарегистрирован: 17 фев 2003, 16:05
- Откуда: NN - Montreal - Charlottetown - Montreal
-
- Пользователь
- Сообщения: 75
- Зарегистрирован: 26 фев 2003, 20:19
- Откуда: toronto
-
- Завсегдатай
- Сообщения: 213
- Зарегистрирован: 17 фев 2003, 16:05
- Откуда: NN - Montreal - Charlottetown - Montreal
- Смайл
- Пользователь
- Сообщения: 135
- Зарегистрирован: 18 фев 2003, 10:38
Блин. Матчасть бум читать?Alexan писал(а):В этом случае дает ошибку при компиляции:pank писал(а):А если так:
DataSet11.Tables("Table1").Columns("Sale1").Expression = IIf(Sale = 0, "", "Sale")
Name 'Sale' is not declared.
Это же не переменная, а имя колонки. Оно должно быть в кавычках.
Объявлено как:
Public Property Expression As String
Правильно надо так:
DataSet11.Tables("Table1").Columns("Sale1").Expression = "IIf(Sale = 0, '', 'Sale')"
-
- Завсегдатай
- Сообщения: 213
- Зарегистрирован: 17 фев 2003, 16:05
- Откуда: NN - Montreal - Charlottetown - Montreal
Тогда дает ошибку:Смайл писал(а):Блин. Матчасть бум читать?Alexan писал(а):В этом случае дает ошибку при компиляции:pank писал(а):А если так:
DataSet11.Tables("Table1").Columns("Sale1").Expression = IIf(Sale = 0, "", "Sale")
Name 'Sale' is not declared.
Это же не переменная, а имя колонки. Оно должно быть в кавычках.
Объявлено как:
Public Property Expression As String
Правильно надо так:
DataSet11.Tables("Table1").Columns("Sale1").Expression = "IIf(Sale = 0, '', 'Sale')"
Cannot convert value 'Sale' to Type: System.Double.
-
- Пользователь
- Сообщения: 75
- Зарегистрирован: 26 фев 2003, 20:19
- Откуда: toronto
-
- Частый Гость
- Сообщения: 10
- Зарегистрирован: 03 мар 2003, 11:04
-
- Завсегдатай
- Сообщения: 213
- Зарегистрирован: 17 фев 2003, 16:05
- Откуда: NN - Montreal - Charlottetown - Montreal
Выдает ту же ошибку:Барабан писал(а):А так?
DataSet11.Tables("Table1").Columns("Sale1").Expression = "IIf(Sale = '0', '', 'Sale')"
Cannot convert value 'Sale' to Type: System.Double.
Мне кажется, я уже все варианты перепробовал. Я все-таки думаю, что кавычек перед iif не надо. Именно Sale должно быть в кавычках, так как мы сравниваем с нулем не число, а колонку. Или дело в типах данных (в БД (Access) она имеет тип Currency) или вообще нельзя сравнивать целиком колонку, а надо делать цикл по каждому значению. Наверно при сравнении колонок True получается только когда колонки идентичны.
-
- Завсегдатай
- Сообщения: 213
- Зарегистрирован: 17 фев 2003, 16:05
- Откуда: NN - Montreal - Charlottetown - Montreal
Колонка у меня Sale. Но я не могу написать Sale и в правой и в левой части выражения, так как при этом выдается ошибка: cross reference error. Поэтому я в DataSet создал еще одну колонку Sale1 и именно ее и показываю в DataGrid.pank писал(а):У тебя имя колонки "sale" or "sale1"?
Это ошибка о том, что ты пытаешся сравнить строку с цифрой (double).
Причем строка не может быть конвертирована в цифру.
Скорее всего это null.
ps
а кавычки я забыл в предыдущем моем постинге.
Thanks Смайл