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函数,不管是加在哪里,都会造成数据库报错......