[問題] GridView中DbType = 'Date'?

看板Programming作者 (。家長。不能退!!)時間15年前 (2010/03/21 11:34), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
最近使用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)
文章代碼(AID): #1BfPFOEb (Programming)
文章代碼(AID): #1BfPFOEb (Programming)