由於
「欄目結構管理
」部分需求的更改,今天不得不把以前的**再翻出來更改。改**總是
bug越改越多,新的功能是實現了,但是不穩定,總在某些情況下總是不行。
經過乙個小時的反覆實驗,發現問題出在
dataet
上。暈了,又是它
……
還是老辦法,單步執行,雖然這個方法很好用,基本
bug都可以被找出來,可全神貫注的盯著顯示器可不像盯著美女那麼爽,那些螞蟻啃出來的**畢竟不那麼具有吸引力
-,-
果然跑了三遍都沒看出什麼,只是證明了三次錯誤會在這種情況下發生。唉~看來今天不是
debug
的日子,於是趴在桌上睡著了
zzzzzz…..
一覺醒來發現已經是吃飯時間,
「不行啊,不能什麼事情都沒做就去吃飯,怎麼對得起白花花的公尺飯?
」我終於良心發現,重新開啟
visual studio
,一定要把
bug搞定。
睡了一覺果然效率高,一遍跑下來就發現了問題。
一張只有一行的表
:ttable.rows.count == 1
我刪了一行
:ttable.rows[0].delete();
行數顯示仍然是1:
ttable.rows.count == 1
莫非datarow
類有bug
?人總是這樣,出了問題總是先找別人的錯誤。不懂怎麼回事,我竟然想到了
bill gates
,在對他的崇敬與厭惡的感情上又多了乙份憤恨!
bug總是沒完沒了…
說歸說,罵歸罵,該做的事情總是得做,
debug
總是得繼續。
跑了幾遍下來,同樣的結果,但是我卻束手無策。想了一下,如果是
datarow.
del
ete()
函式出問題的話,我是不是應該看一下這個函式到底做了什麼?於是我展開
datarow
的所有屬性,單步執行看經過
delete
函式時哪些屬性被改變了。
果然不出我所料,很多屬性都被改變了,比如
datarow.itemarray
被清空了,也就是這行的資料已經不存在,但為什麼它不刪除行呢?到這裡我突然想到,
dataset
是支援回滾操作的,難道是為了實現這個才這麼做的嗎?
再往下看,有個屬性一下子吸引了我,
rowstate == deleted
。我一下子變得很興奮,把程式再跑一遍,仔細觀察了
rowstate
的變化,發現呼叫
datarow.
del
ete()
以後rowstate
從unchanged
變成了deleted。
真是黃天不負有心人,又搞定了乙個隱蔽的
bug。現在我可以用
ttable.rows[0].rowstate
來判斷而不用
ttable.rows.count了。
看來還是基礎不紮實,快餐吃出來的
.***
果然不靈的,很多底層的東西不了解,得弄本書好好看看。
debug
就和戀愛中的矛盾一樣,往往誰都沒有錯,錯在相互不了解。
可惡的控制項
safeengine.dll seh changepassword 更改儲存介質的密碼 seh clearsession 清除環境變數 seh decryptdata 用對稱演算法 sdbi 解密資料 seh decryptdataex 用對稱演算法解密應用資料 擴充套件 seh digest 摘要...
可惡的病毒
今天中毒了,一開始就是發現norton的防火牆的cpu佔用率居高不下,後來發現中了狂發郵件的病毒。it來整過之後,依然無效。檢查system32目錄,發現有幾個檔案是今天才建立的,比較可以。看了看程序,有個wmiconf.exe殺掉後就不狂發郵件了。但單純刪除這個檔案無效,過一段時間還是會出來。查遍...
可惡的木馬
今天發現 執行錯誤,原來的好多網頁中都有 這兩段 也就是所謂的掛馬。var cooka new string document.cookie var then new date var cookname 9b4a4c5ebf042c02 then.settime then.gettime 30 60...