看板 Visual_Basic 關於我們 聯絡資訊
※ 引述《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
blackspace98:為什麼沒有給值出來..那問題是要從其他網頁傳過的值 07/27 16:24
blackspace98:我先給他的值 就可以了(在還沒套用大大的心寫法之前) 07/27 16:25
blackspace98:但是套用了 大大您給的新的寫法 編譯器會出現 07/27 16:27
blackspace98:準則運算式的資料類型不符合 然後再附帶一堆堆疊追蹤 07/27 16:29
blackspace98:然後就不太行了@@ 謝謝大大您的指點^^ 07/27 16:29
MOONRAKER:大概某一個參數轉字串中有問題吧 算了你別管這個了 07/27 16:50
MOONRAKER:format.string() 原則很簡單,有機會再用就好了 X( 07/27 16:51
blackspace98:非常的感謝你嘍^^ 07/27 16:52
ccccccc540:這篇幫了我大忙(汗,真是非常感謝^^ 06/22 16:41