作者Growi (。家长。不能退!!)
看板Programming
标题[问题] GridView中DbType = 'Date'?
时间Sun Mar 21 11:34:47 2010
最近使用VS 2005 和 SQL SERVER 2005
使用C# 在ASP.NET开发中享用GridView捞取资料库
并使用 Calendar.SelectedDate 作为 where 条件中的日期变数
(想以where条件来筛选资料的日期栏位 )
但是发现在 GridView 最後一步Test Query的时候会跳出一个
Parameter Values Editor 视窗 然後好像是要定义日期变数的type?
(不太清楚这设定视窗要干嘛!?)
视窗中有几个选项: Type, DbType 还有变数名称 与 Default值设定
DbType这时候预设会是Date型别 (有点奇怪 我使用SQL2005并无DATE型别 2008才有)
若直接按OK 测试查询 则会出现错误讯息
the version of sql server in use does not support datatype 'date'
这里如果将DbType改为 DateTime则可以成功测试捞取资料
但是这里即使以精选为DateTime 按下 Finish 之後 DbType又回回复 Date 型别
然後建置网页後,在查询的时候又会出现上面那个错误讯息
找网路之後发现有个解法就是到 source code里面硬找 DbType这个项目 来改
把 DbType="Date" 手动硬改为 DbType="DateTime"
---------------------------------------------------------------
原本的:
<SelectParameters>
<asp:ControlParameter ControlID="Calendar1"
DbType="Date" Name="Date"
PropertyName="SelectedDate" />
</SelectParameters>
手动改成:
<SelectParameters>
<asp:ControlParameter ControlID="Calendar1"
DbType="DateTime" Name="Date"
PropertyName="SelectedDate" />
</SelectParameters>
---------------------------------------------------------------
这样就能成功查询(并且带有日期筛选功能)
这想起来就很笨,怎麽会用这种方法来改 而且每次都要手动进去原始码里面改
选了DateTime竟然还会自动跳回来Date也很奇怪
且2005根本没有Date这个型别 也很怪
请问要怎麽解决这个问题? 让他的型别预设就是 DateTime ?
※ 编辑: Growi 来自: 220.130.171.114 (03/21 11:35)