數據庫更新成功 在頁面上卻顯示更新失敗

用vs2005做的簡單系統 有一個修改密碼的頁面 修改密碼點提交時顯示失敗 在數據庫裏卻已經改過來了 是怎麼回事呀

估計是你在數據庫操作完之後,在代碼獲取數據處理結果時候的邏輯判斷錯了。

你數據庫內容都更新了。。顯示更新失敗,那估計是你邏輯判斷有誤了、、

數據庫操作時候的邏輯判斷有誤,仔細檢查代碼看看,關鍵是if條件判斷

檢查你的代碼,說不定你把成功修改後的提示寫成了修改失敗了,如果實在檢查不出來,就貼出你的代碼吧,有代碼有真相

數據庫改過來了,說明數據庫操作是對的
顯示失敗,說明判斷的邏輯可能有錯誤或遺漏

把判斷的邏輯部分貼出來看看

應該是邏輯判斷有誤,把這部分代碼貼出來,方便大家給你找錯呀!

可能是session的原因,如果你沒有及時提交按鈕,
session超時,session對象被清空,if判斷失效。
還有commandText應該用parameter構造,以防
sql inject危險。

Response.Write("<script>alert('原始密碼不正確!');location.href='studMain.aspx'</script>");
沒有必要在數據訪問層裏進行判斷吧,在表示層就可以了呀,或者是用驗證控件進行處理。
還有就是可以是你的邏輯錯誤,你可以設置斷點進行追蹤。

cmd.ExecuteNonQuery();返回受影響的行數
cmd.ExecuteScalar();返回結果集第一行第一列
你第一列ID不會是0吧?還有哪個.Tostring()一下

第一:你的命名該注意一下了

第二:數據處理,業務邏輯,前臺操作,分層比較好.

第三:你是根據用戶名,修改密碼的麼?

這一句錯了Convert.ToInt32(cmd.ExecuteScalar()) > 0
應該用Convert.ToInt32(cmd.ExecuteNonQuery()) > 0

兩者區別:
ExecuteNonQuery 已重寫。 對連接執行 Transact-SQL 語句並返回受影響的行數。 
ExecuteScalar 已重寫。 執行查詢,並返回查詢所返回的結果集中第一行的第一列。忽略其他列或行。  

另外你的程序寫的時候,最好符合縮進規則,

另外,你程序中最好不要直接寫Commad命令字符串,不安全,小心注入攻擊。
可以考慮在數據庫端用存儲過程,一個是靈活些,便於修改,二個安全性好些

來源:英超直播

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章