Ошибка преобразования при преобразовании значения varchar 'null' в тип данных int - PullRequest
2 голосов
/ 20 февраля 2012

Я получаю значения из базы данных на страницу aspx.получая значения одного столбца, столбец выбрасывает значение, подобное ...

null,402,2912,2909,2910,2913,2911,2914,2915,2388,2389,2390,
2391,2964,2965,2392,2393,2394,2395,2397

Теперь генерируется исключение

Ошибка преобразования при преобразовании значения varchar 'null'к типу данных int.

Но я хочу, чтобы все другие значения столбца, кроме нуля ...

Есть ли способ преобразовать это 'ноль' в '0', но все же все остальные значения должны существовать.

Ответы [ 4 ]

4 голосов
/ 20 февраля 2012

Сделайте ваш тип данных Nullable<int> вместо int, чтобы разрешить преобразованные int nullable значения, или в операторе выбора sql вы можете сделать это: ISNULL(yourcolumn, 0) для преобразования null в 0.

3 голосов
/ 20 февраля 2012

Я бы просто объявил мой тип как int? variable;, который имеет тип int, допускающий значение NULL.Это позволило бы избежать получения исключения, и вы могли бы легко преобразовать свое значение в 0 при необходимости

if (value == null)
   value = 0;
2 голосов
/ 20 февраля 2012

Поскольку вы говорите, что хотите, чтобы все значения, кроме нулевого значения в ваших результатах, вы можете отфильтровать его в своем операторе select с предложением where.

SELECT * FROM COLUMN WHERE COLUMN_VALUE IS NOT NULL

Или, если вы используете Linq to EF:

from x in yourObjectContext.yourColumns where x != null
1 голос
/ 20 февраля 2012

Я думаю, что вы пытаетесь перейти от NULL до 0 в базе данных. Тогда вы должны попробовать это -

SELECT CASE WHEN columnName IS NULL THEN '0' ELSE columnName END FROM tableName  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...