![]() ![]() ![]() ![]() |
|||||
|
|||||
樓主 lethal ![]()
![]() |
問題是丟到 InArr後 rs並不會記得上次的順序,感覺這樣的邏輯好像不對,還請指教。 tb ------------------------------------ item_no name seq ------------------------------------ a001a 小白 1 a001a 小黃 3 ←更新為2 a001a 小黑 2 ←更新為3 a001b 小黃 1 a001b 小黑 2 a001c 小紅 1 a001c 小花 2
搜尋相關Tags的文章:
[ 陣列比對 ] ,
本篇文章發表於2014-11-17 23:54 |
1樓 |
tData = "a001a:小白,a001a:小黃,a001a:小黑,,,a001b:小黃,a001b:小黑,,,a001c:小紅,a001c:小花"
這邊的資料一定會包含資料庫中所有的資料嗎? 會的話,其實可以不用考慮怎麼比對,每一筆都直接進行Update就行了 即使排名沒變,Update了也不會有影響,所以不用特別去比對要不要Update 或者,可以將資料全部資料清除,全部重新Insert也是一種方法 但若tData並不一定包含所有資料,那就不能只Update一筆了 除了要更新目前的這筆資料外,新排名跟舊排名間的資料也要跟著往後挪一位 但不管是上述哪一種情形,其實都可以不用做比對的動作 除非資料庫中資料很多,怕影響效能才要做考慮
本篇文章回覆於2014-11-18 10:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
2樓
作者回應
lethal ![]() |
老頑童大大您好,tData是從資料庫內撈出來的,所以一定會有這筆資料,資料列後面還有一些欄位沒錯。
就您的意見,突然產生一種想法,也不比對,直接更新 seq 但 seq 會一直往上加,請問是否可以判斷不同的 item_no,讓 seq 重新編號?
本篇文章回覆於2014-11-18 20:46
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
3樓
最有價值解答
老頑童 ![]() ![]() |
conn.execute("update tb set seq='"j+1"' ")
這邊沒加Where條件,會把全部資料都Update為j+1 sql= " select * from tb where item_no ='"&itNo&"' and name= '"&wkSq&"' 這邊也沒必要做select動作,直接Update即可
本篇文章回覆於2014-11-19 10:26
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
4樓
作者回應
lethal ![]() |
感謝老頑童大大的指導。
本篇文章回覆於2014-11-20 23:47
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
回覆 |
如要回應,請先登入. |