我从数据库获取值到aspx页面。获取一列的值时,该列会抛出一个像......
的值null,402,2912,2909,2910,2913,2911,2914,2915,2388,2389,2390,
2391,2964,2965,2392,2393,2394,2395,2397
现在它抛出异常
转换varchar值时转换失败' null'数据 输入int。
但是我想要列的所有其他值,除了null ...
有没有办法转换这个' null'到' 0',但仍然应该存在所有其他值。
答案 0 :(得分:4)
使您的数据类型Nullable<int>
而不是int
以允许转换的可以为空的值,或者在sql select语句中,您可以执行此操作:ISNULL(yourcolumn, 0)
转换null
到0。
答案 1 :(得分:3)
我只是将我的类型声明为int? variable;
,这是一个可以为null的int类型。
这样可以避免出现异常,如果需要,您可以轻松地将值转换为0
if (value == null)
value = 0;
答案 2 :(得分:2)
由于您说您希望结果中除null值之外的所有值,您可以使用where子句在select语句中对其进行过滤。
SELECT * FROM COLUMN WHERE COLUMN_VALUE IS NOT NULL
或者,如果你使用Linq到EF:
from x in yourObjectContext.yourColumns where x != null
答案 3 :(得分:1)
我认为您正尝试在数据库中从NULL
更改为0
。
那你应该试试这个 -
SELECT CASE WHEN columnName IS NULL THEN '0' ELSE columnName END FROM tableName