判断空字段并返回的问题

Cool_xiaocao 2011-01-26 09:53:05
我想写这样一个带参数的方法
首先传过来的值是像int? DateTime? decimal?这样的类型的
然后利用Convert.IsDBNull()判断传过来的值是否为DBNull,
如果为True,返回null并转换为相应的类型,
如果不是,则返回对应传过来的值(注意数据类型(int? DateTime? decimal?这些类型))


int? n = Convert.IsDBNull(reader["userName"]) ? (int?)null : int.Parse(reader["userName"].ToString());
上述例子是利用三元运算进行转换,而我想写这样的一个转换方法,这样就简化一点了

reader["userName"]:是数据库某个字段的值字段名,利用SqlDataReader读出来的
(int?)null : 如果去掉int?,直接写null,会报错的

请大家提示提示哈...

...全文
230 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyq11 2011-01-26
  • 打赏
  • 举报
回复
static T GetValueOrDefault<T>(this DataRow row, string columnName) {
if (!row.IsNull(columnName))
{
return (T)row[columnName]
}
return default(T);
}

http://www.csharpwin.com/csharpspace/11833r1014.shtml
Cool_xiaocao 2011-01-26
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 wuyq11 的回复:]
Method<T>(T t)
{
}
[/Quote]

可以具体一点吗?
Cool_xiaocao 2011-01-26
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 net_lover 的回复:]
C#是强类型的语言,不确定的类型你可以采用泛型吧
[/Quote]

我就是想用一个泛型集合把像int? DateTime?这样的类型装起来
但是不会写,能详细点吗?
xray2005 2011-01-26
  • 打赏
  • 举报
回复
int? i= (reader["userName"]== DBNull.Value? null : Convert.ToInt32(reader["userName"]);
wuyq11 2011-01-26
  • 打赏
  • 举报
回复
Method<T>(T t)
{
}
wuyq11 2011-01-26
  • 打赏
  • 举报
回复
int? i= (eader["userName"]== DBNull.Value? null : Convert.ToInt32(reader["userName"]);


孟子E章 2011-01-26
  • 打赏
  • 举报
回复
C#是强类型的语言,不确定的类型你可以采用泛型吧
Cool_xiaocao 2011-01-26
  • 打赏
  • 举报
回复
还有传过来的值可能是int?这种类型,也可能是DateTime?这种类型的
Cool_xiaocao 2011-01-26
  • 打赏
  • 举报
回复
各位,不好意思,我是要一个方法
孟子E章 2011-01-26
  • 打赏
  • 举报
回复
修改
todayclock 2011-01-26
  • 打赏
  • 举报
回复
int? n = Convert.IsDBNull(reader["userName"]) ? null : (int?)(reader["userName"].ToString());
枪牌 2011-01-26
  • 打赏
  • 举报
回复
这些类型都是值类型,也就是说不存在null,如果赋值null会报错
加上? 可空连接符
表示类型可以被设置为null

所以去掉“?”就不能设置为null

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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