亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Access日期字段參數化查詢的怪問題!

Access日期字段參數化查詢的怪問題!

牧羊人nacy 2018-12-06 16:38:57
先看一下示例的SQL語句: select ID from (select *,(select top 1 訂購日期 from 訂單 where ...) as 最近訂購 from 客戶)? where 最近訂購 between @p1 and @p2 對應的添加參數的代碼(使用Enterprise Library 3.1): db.AddInParameter(cmd, p1, DbType.DateTime, dt1); db.AddInParameter(cmd, p2, DbType.DateTime, dt2); 為了便于閱讀,我簡化了語句的寫法,各位請別管語法問題,我這兒要描述的問題是:使用這個SQL命令來搜索記錄,不會拋出異常,但搜索結果是不正確的!而如果把SQL中的參數p1、p2直接改為#2009-2-12 12:00:00#這種形式,結果就正確了! 換句話說,使用參數方式添加參數值搜索結果不正確;直接把時期值寫到SQL語句中,就正確了。這是怎么回事呢? 補充說明:1、不使用子查詢的話,參數化查詢是正確的;2、將DbType.DateTime改為DbType.Date,或者將dt1改為dt1.ToString()同樣不能解決。
查看完整描述

4 回答

?
守著星空守著你

TA貢獻1799條經驗 獲得超8個贊

把?DbType.DateTime 改為?System.Data.OleDb.OleDbType.DBDate 試試

查看完整回答
反對 回復 2019-01-21
?
jeck貓

TA貢獻1909條經驗 獲得超7個贊

而如果把SQL中的參數p1、p2直接改為#2009-2-12 12:00:00#這種形式,結果就正確了!

你說的意思是不是時間的格式不是你所要的,#2009-2-12 12:00:00#格式。如果是這樣,你可以在把p1,p2格式成你要的格式在傳遞。

查看完整回答
反對 回復 2019-01-21
?
絕地無雙

TA貢獻1946條經驗 獲得超4個贊

不是這個意思。我是說直接把日期值寫在SQL代碼里就沒事,用參數就不正確。

查看完整回答
反對 回復 2019-01-21
?
守著一只汪

TA貢獻1872條經驗 獲得超4個贊

這個 應該 是 與你的語言 環境有關係。也 就是 ,生成的日期 和 db的日期是不一致的。

查看完整回答
反對 回復 2019-01-21
  • 4 回答
  • 0 關注
  • 482 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號