Re: [.NET] 查詢運算式中的 語法錯誤
※ 引述《blackspace98 (~我愛夏天~)》之銘言:
: 1.查詢運算式 'CategoryID = AND StartingBidDate <= #07/27/2009 12:23:26# AND
: BidEnded = false' 中的 語法錯誤 (少了運算元)。
阿他都把接收到的SQL query給你看了,CategoryID=後面一片空白,表示你的
categoryID.value的值是空字串啊。為什麼沒有給值出來你要自己找出問題,
下面那個ItemID=也是一樣。
另外就是別再用這種 " ... " & xxx & " ... 的老方法拼SQL了
用點比較先進的方法吧
strSQL = "SELECT * FROM AuctionItems WHERE "
strSQL &= "CategoryID = " & categoryID.Value & " "
strSQL &= " AND StartingBidDate <= #" & DateTime.Now.ToString("G",
DateTimeFormatInfo.InvariantInfo) & "# "
strSQL &= "AND BidEnded = false ORDER BY CloseBidDate"
ItemSource.SelectCommand = strSQL
等於
SQL = string.format(" SELECT * FROM AuctionItems " & _
" WHERE CategoryID = '{0}' AND StartingBidDate <= #{1}# " & _
" AND BidEnded = false ORDER BY CloseBidDate ", _
categoryID.Value, _
DateTime.Now.ToString("G", DateTimeFormatInfo.InvariantInfo) )
這樣;string.format()第一個參數是format string, 裡面用的{0}, {1}等會自動
取代成第二個、第三個、…參數。
上面是有用到續行符號( _),你自己也有用
既然用了續行符號那可以把格式弄得更清楚一點
例如
SQL = string.format( _
" SELECT * FROM AuctionItems WHERE CategoryID = '{0}' " & _
" AND StartingBidDate <= #{1}# AND BidEnded = false " & _
" ORDER BY CloseBidDate " _
, categoryID.Value _
, DateTime.Now.ToString("G", DateTimeFormatInfo.InvariantInfo) _
)
把右括號和 string.format( 對齊,後面參數的逗點放到前面,比較不容易忘記。
--
Google 關鍵字 : MPFC-TCP / 殺人笑話 / 包租婆也有過當羅莉的時候
Youtube關鍵字 : 脫衫脫褲 / 傻蛋奧運 / 宗教審訊 / 買張床 / 單車超人 / 謳歌金錢
*美髮師登山隊 http://tinyurl.com/dm6lh3 *Ypres 1914 http://tinyurl.com/b432jb
[蒙帝派松正體中文計畫] http://www.youtube.com/user/JamesBondXD
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.120.168.228
推
07/27 16:24, , 1F
07/27 16:24, 1F
→
07/27 16:25, , 2F
07/27 16:25, 2F
→
07/27 16:27, , 3F
07/27 16:27, 3F
→
07/27 16:29, , 4F
07/27 16:29, 4F
→
07/27 16:29, , 5F
07/27 16:29, 5F
→
07/27 16:50, , 6F
07/27 16:50, 6F
→
07/27 16:51, , 7F
07/27 16:51, 7F
推
07/27 16:52, , 8F
07/27 16:52, 8F
推
06/22 16:41, , 9F
06/22 16:41, 9F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):