通过ADO.NET访问Sybase ASE 15.5数据库datetime字段的小问题

ADO.NET 专栏收录该内容
1 篇文章 0 订阅

假设ASE 15.5数据库中存在一张表Talk,表有三个字段Id,Name,Time,类型分别为int,varchar(255),datetime。现在需要往数据库中插入一条记录,使用ado.net编程的话,示例代码如下:

 

代码并不复杂,先用AseConnection建立连接,打开连接。然后创建AseCommand,绑定参数。最后执行,打印插入数据的行数,应该得到1。

实际上,代码执行返回的结果是0,查看数据库也发现没有记录被插入。

 

问题出在DateTime.Now上,可能是因为ASE 15.5相比较15.0在时间格式上做了改动,提高了时间精度,导致Data Provider处理出错。这段代码在访问ASE 15.0.3数据库时运行正常。

 

在Data Provider修正这个bug之前,至少有两个work around的办法:

1. 使用DateTime.Today代替DateTime.Now,保存年月日时间。

2. 使用DateTime.Parse("2010-12-9 22:22:22")代替,用字符串解析的方法得到年月日以及时分秒时间。

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

SyWorkSpace

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值