c#.net设计中的几个小问题(ACCESS数据库动态WEB设计)

1、数据库SQL语句获取的所有数据不管其在数据库中是什么类型的数据,到了dataset中一律是string类型的,这就导致了在页面中使用“{0:C}”之类的格式化语句无法格式化数据的情况。

 

2、今天才发现的一个小现象:在DateTime.Today.ToString("yyyy年MM月dd日")中,year和day必须是小写的,而month必须是大写的......如果不是就会出错::

DateTime.Today.ToString("YYYY年MM月DD日")的显示结果是 YYYY年12月DD日;

DateTime.Today.ToString("yyyy年mm月dd日")的显示结果是 2009年00月29日;

出现这个现象的原因是,datetime函数不仅包含了日期而且包含了时间,其中month和minute的首字母都是M,因此用大写M表示Month,用小写的m表示minute。而其余都是用小写字母表示,完整的格式为yyyy-MM-dd hh:mm:ss即:年-月-日 时: 分: 秒。

3、ACCESS的子查询中无法再使用格式化函数FORMAT,否则会出错!不知道其他数据库是否也存在这个问题:

SELECT[joinCustomer].[ID], [joinCustomer].[Name], [joinCustomer].[Surplus] , (SELECT SUM([Number]) FROM [Docment] WHERE [Destinations] = [joinCustomer].[ID]) AS sentnum,IIF((SELECT SUM([Price]) FROM [Docment] WHERE [Destinations] = [joinCustomer].[ID]) <>NULL, (SELECT SUM([Price]) FROM [Docment] WHERE [Destinations] = [joinCustomer].[ID]),\"0\") AS sentpay, (SELECT SUM([Number]) FROM [Docment] WHERE [Source] = [joinCustomer].[ID]) AS backnum,    IIF((SELECT SUM([Price]) FROM [Docment] WHERE [Source] = [joinCustomer].[ID]) <>  NULL,(SELECT SUM([Price]) FROM [Docment] WHERE [Source] = [joinCustomer].[ID]),\"0\")  AS backpay, IIF(sentpay >0,FORMAT((backpay/sentpay),\"#.##\"),\"0\") AS Disc  FROM [joinCustomer],[Docment] WHERE [joinCustomer].[Type] =2 GROUP BY [joinCustomer].[ID], [joinCustomer].[Name], [joinCustomer].[Surplus] ORDER BY [joinCustomer].[ID]

在上面这个语句中,现在是正常的,但是如果对IIF((SELECT SUM([Price]) FROM [Docment] WHERE [Destinations] = [joinCustomer].[ID]) <>NULL, (SELECT SUM([Price]) FROM [Docment] WHERE [Destinations] = [joinCustomer].[ID]),\"0\") 使用FORMAT函数,不管是加在哪里,都会造成数据库报错......


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值