問題
OleDb存取Access語法小細節 - 參數順序
在寫ASP.NET配合Access存取資料時,發現一直無法更新內容!
解決方法
測了好久!才發現問題原來在參數的順序
帳號(@id)="admin"
密碼(@psw)="12345"
變更後的密碼(@newpsw)="11111"
語法:UPDATE User SET psw=@newpsw Where id=@id AND psw=@psw
參數順序:@newpsw,@id,@psw
參數值順序:@id,@newpsw,@psw
在Microsoft SQL Server裡,參數順序是無關緊要的,因為DB會去比對給的參數根語法裡的參數是否相同!並且將相同的參數對應起來
但是在Access裡面,很明顯的並沒有去將參數值對應,而是用參數給的順序去對應,造成當語法在WHERE的條件裡,第2個參數@id與第3個參數@psw給的值卻是"11111","12345",造成查不到資料已致沒有更新資料!!!
那,如果資料庫好死不死有這筆資料哩。。。。
我想。。。。你會被客戶罵死吧!!!
所以順序要改成這樣
參數順序:@newpsw,@id,@psw
參數值順序:@newpsw,@id,@psw
這樣就可以了!!
以上
沒有留言:
張貼留言