关于数据库返回值为Null的问题

BasicArchitect 2010-01-14 02:19:29
关于数据库返回值为Null的问题

int a = row.Field<int>("XXX")

如果数据库中的XXX字段为NULL,这句话应该怎么写?
不能每个语句都写上:row.Field<object>("XXX") == null ? 默认值 : row.Field<int>("XXX")

这样写也太麻烦了,有简单点的方法没有?
...全文
305 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
rainsnowclowd 2010-01-14
  • 打赏
  • 举报
回复
有的哦。。
忘了叫什麽了
就是C#中int也可以放入Null型呀


int? a = row.Field <int>("XXX");

以後在操作a的時候可以用雙??號來判斷哦

int b=a??5;//就是如果a是Null b就為5


至於這兩句能不能和成一句

int a = row.Field <int>("XXX")??5;

我就不知道了。你試試吧。。
這個屬於泛型的知識
leichaoyu 2010-01-14
  • 打赏
  • 举报
回复
就在sql里加isnull()吧
alalals 2010-01-14
  • 打赏
  • 举报
回复
不好意思发错了,应该是:
string value = row.Field<string>("columnName") ?? "默认值";
alalals 2010-01-14
  • 打赏
  • 举报
回复
简单的写法:
row.Field <object>("XXX") == null ?? 默认值
波导终结者 2010-01-14
  • 打赏
  • 举报
回复
数据库查的时候就用isnull函数把null消除掉
qqiuzaihui 2010-01-14
  • 打赏
  • 举报
回复
用0替代ReportsTo列中的值: IsNull(ReportsTo,0) as ReportsTo
如: string select = "SELECT EmployeeID, FirstName, LastName, Photo, IsNull(ReportsTo,0) as ReportsTo FROM Employees";
nimingxin1987 2010-01-14
  • 打赏
  • 举报
回复
sql的isnull()函数可以
isnull(字段名,想要替换成的值)
BasicArchitect 2010-01-14
  • 打赏
  • 举报
回复
想办法啊!
houyizhinv 2010-01-14
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 basicarchitect 的回复:]
引用 3 楼 houyizhinv 的回复:
去写个触发器在插入的时候就把NULL变成你想要的值可以不


写触发器?对这个问题是不是有点儿大炮打蚊子的感觉?
[/Quote]
那你就只能用?:这个了
这个已经是最简单的判断写法了
难道不判断么
cjnkd 2010-01-14
  • 打赏
  • 举报
回复
关注!
BasicArchitect 2010-01-14
  • 打赏
  • 举报
回复
还有别的方法么?
BasicArchitect 2010-01-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 houyizhinv 的回复:]
去写个触发器在插入的时候就把NULL变成你想要的值可以不
[/Quote]

写触发器?对这个问题是不是有点儿大炮打蚊子的感觉?
houyizhinv 2010-01-14
  • 打赏
  • 举报
回复
去写个触发器在插入的时候就把NULL变成你想要的值可以不
BasicArchitect 2010-01-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xray2005 的回复:]
好像没的。 只有 ?:判断了
[/Quote]

那微软太傻了,应该给个简洁点的写法!
xray2005 2010-01-14
  • 打赏
  • 举报
回复
好像没的。 只有 ?:判断了

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧