DateTime需要为空时,如何插入值?

守门的巴乔 2013-12-24 03:30:01
SQL Server中,DateTime可以为null,而C#中不可以。
属性类型我写为DateTime?,有添加和修改功能需要用到这个字段
在Ajax层获取页面数据时,我加了判断,如果获得的字符串长度为0,则值为null。否则获取字符串并转成DateTime类型。
在数据访问层中,我判断,如果获得的属性值为null那么在SQL语句中不添加此属性的参数,否则添加。
但是在运行时,不管有没有值,都会提示找不到方法:“Void Model层命名空间.Model类.set_属性名(System.DateTime)”。
...全文
450 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
卧_槽 2013-12-24
  • 打赏
  • 举报
回复
DbNull.Value
守门的巴乔 2013-12-24
  • 打赏
  • 举报
回复
谢谢楼上各位了,蛋疼啊,不知道啥问题,和之前写的代码一样,现在再写一遍运行就特么成功了。。。。
md5e 2013-12-24
  • 打赏
  • 举报
回复
引用 5 楼 u012512421 的回复:
[quote=引用 3 楼 liuchaolin 的回复:] 把字段设置成文本
公司要求用DateTime[/quote] 没必要的,需要DateTime时转换一下类型就可以了
guanyelong 2013-12-24
  • 打赏
  • 举报
回复
2L正解。新的语法,可空值类型。如Int32、结构体等这样的类型是不可能为空的,常见的如int,DateTime都是不可能为空的。所以在需要判断是否有值的场合,可以用加问号的可空值类型,如int?,DateTime?这时,可以为空(null),并且可以通过它的HasValue属性来判断是否有值,并通过Value属性获得真正的值。它可以通过对包装类型直接赋值的方式隐式创建,如:int? a=32;
  • 打赏
  • 举报
回复
mark一下,我一般都是直接插字符串
守门的巴乔 2013-12-24
  • 打赏
  • 举报
回复
引用 3 楼 liuchaolin 的回复:
把字段设置成文本
公司要求用DateTime
守门的巴乔 2013-12-24
  • 打赏
  • 举报
回复
引用 2 楼 feiyun0112 的回复:
那个属性有没有set ***************************************************************************** 签名档: http://feiyun0112.cnblogs.com/
private DateTime? _YanLianShiJian; public DateTime? YanLianShiJian { get { return _YanLianShiJian; } set { _YanLianShiJian = value; } }
md5e 2013-12-24
  • 打赏
  • 举报
回复
把字段设置成文本
feiyun0112 2013-12-24
  • 打赏
  • 举报
回复
那个属性有没有set

*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/
wangxuebo 2013-12-24
  • 打赏
  • 举报
回复
帮顶!!!!我也想知道

62,046

社区成员

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

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

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

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