台灣最具影響力的-資訊專家社群 - 讓您成為最有價值的IT專業人才
線上人數
437
 
會員總數:230673
接案會員:6774
文章總數:2320
討論主題:176453
歡迎您免費加入會員
討論區列表 >> ASP.NET >> LISTBOX複選的問題

[變換順序]
[我要回覆]


回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
LISTBOX複選的問題
價值 : 90 QP  點閱數:1192 回應數:16

點圖分享到Plurk吧!
樓主

tan
門外漢
0 9
406 28
發送站內信

各位好
小弟有個問題請教一下
就是我使用一個LISTBOX去做複選
然後去更新一個資料庫內的資料
但是如果有複選的話
就會出現

(MENU_CLASS = '" & Me.DL_MENU_CLASS.SelectedValue & "')
AND (MENU_FOOD = '" & Me.ListBOX1.Items(I).Value & "')
AND (MENU_MACHINE = '" & Me.DL_MENU_MACHINE.SelectedValue & "')" "少了運算元"
如果是單選的話
卻是正常

然後我去查看迴圈後的sql有發現
選擇的第一個選項
會重複出現兩次
不知道是否是這個問題
還請各位前輩幫幫忙
感謝



本篇文章發表於2011-12-09 22:57
什麼是iT Power資訊報 2010年藍色小舖認證專家風雲榜完全名單
1樓
回應

mark shu
捐贈 VP 給 Mark Shu 檢舉此回應
把Me.AccessDataSource4.UpdateParameters.Add("MENU_DAY", CDate(Now).ToString("yyyy/MM/dd")) 移到迴圈裡面


本篇文章回覆於2011-12-09 23:29
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

tan
檢舉此回應
to mark
感謝您的回答
不過還是不行哩
情況還是一樣


本篇文章回覆於2011-12-09 23:43
--未登入的會員無法查看對方簽名檔--
3樓
回應

arching
捐贈 VP 給 arching 檢舉此回應
SQL才可以使用 MENU_day = @MENU_DAY
Access 請使用 MENU_day = ?


本篇文章回覆於2011-12-10 01:48
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

tan
檢舉此回應
感謝arching
不過MENU_day = @MENU_DAY
access似乎也可用吧




本篇文章回覆於2011-12-10 02:47
--未登入的會員無法查看對方簽名檔--
5樓
回應

arching
捐贈 VP 給 arching 檢舉此回應

當 CommandType 設定為 Text 時,OLE DB.NET Provider 不支援將參數傳遞至由 OleDbCommand 所呼叫之 SQL 陳述式或預存程序的具名參數。在這種狀況下,必須使用問號 (?) 替代符號。

請參考:http://msdn.microsoft.com/zh-tw/library/system.data.oledb.oledbcommand.commandtext(v=VS.80).aspx


本篇文章回覆於2011-12-10 03:04
--未登入的會員無法查看對方簽名檔--
6樓
回應

arching
捐贈 VP 給 arching 檢舉此回應

如果 SQL 字串為參數型查詢或命令,也會根據所使用的 ADO.NET 提供者來決定參數的替代符號。例如,如果提供者為 System.Data.SqlClient,即 SqlDataSource 類別的預設提供者,則參數的替代符號為 '@parameterName'。然而,如果提供者設定為 System.Data.Odbc 或 System.Data.OleDb,則參數的替代符號會是 '?'。

請參考:http://msdn.microsoft.com/zh-tw/library/system.web.ui.webcontrols.sqldatasource.updatecommand(v=VS.80).aspx


本篇文章回覆於2011-12-10 03:13
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

tan
檢舉此回應
to arching
感謝您分享那麼多資訊
但是我的問題並不是那個哩
事實上我用那樣寫update
確實可以
因為我只選單選的話
是可以更新資料庫的
只是卡在複選部分
再次感謝您的分享
謝謝


本篇文章回覆於2011-12-10 09:03
--未登入的會員無法查看對方簽名檔--
8樓
回應

No.18
捐贈 VP 給 No.18 檢舉此回應
把loop裡的SQL Response.Write 出來看看


本篇文章回覆於2011-12-10 11:17
--未登入的會員無法查看對方簽名檔--
9樓
作者回應

tan
檢舉此回應
在麻煩您了
謝謝





本篇文章回覆於2011-12-10 11:55
--未登入的會員無法查看對方簽名檔--
10樓
作者回應

tan
檢舉此回應
不好意思
我是從21個選項中選兩個
謝謝


本篇文章回覆於2011-12-10 12:04
--未登入的會員無法查看對方簽名檔--
11樓
回應

No.18
捐贈 VP 給 No.18 檢舉此回應
選了二個,但卻有三個SQL

看來你得先查一下If Me.ListBOX1.Items(I).Selected Then

為何進去3次



本篇文章回覆於2011-12-10 13:15
--未登入的會員無法查看對方簽名檔--
12樓
最有價值解答

No.18
捐贈 VP 給 No.18 檢舉此回應
另外我會改成這樣試試


很多年沒寫VB了,不確定有沒有寫錯,主要是把SQL 變數拿到外面去,然後在If Me.ListBOX1.Items(I).Selected Then裡
重新初始化值





本篇文章回覆於2011-12-10 13:18
--未登入的會員無法查看對方簽名檔--
13樓
作者回應

tan
檢舉此回應
To no.18
很感謝您的回覆
我有試過
Me.AccessDataSource4.UpdateParameters.Add("MENU_DAY", CDate(Now).ToString("yyyy/MM/dd"))
這串拿出迴圈後
還是有問題
我有驗證過迴圈
卻是正常的
我所複選的選項都是很正常輸出
包括值以及編號
但是就不知道為什麼
加了sql就有問題了
謝謝


本篇文章回覆於2011-12-10 14:02
--未登入的會員無法查看對方簽名檔--
14樓
回應

No.18
捐贈 VP 給 No.18 檢舉此回應
你有試過

單純測試勾選二個item,然後進If Me.ListBOX1.Items(I).Selected Then 是2次還是3次呢?



本篇文章回覆於2011-12-12 12:19
--未登入的會員無法查看對方簽名檔--
15樓
回應

Lance
檢舉此回應
版大是否有嘗試在每一次設定
Me.AccessDataSource4.UpdateCommand = SQL 時,
看一下SQL 的內容是否正確?


本篇文章回覆於2011-12-12 17:26
--未登入的會員無法查看對方簽名檔--
[變換順序]
 

回覆
如要回應,請先登入.