台灣最大程式設計社群網站
線上人數
2175
 
會員總數:245964
討論主題:189547
歡迎您免費加入會員
討論區列表 >> ASP.NET >> 再問問問
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
再問問問
價值 : 0 QP  點閱數:1196 回應數:6
樓主

arthur
初學者
483 60
212 433
發送站內信

捐贈 VP 給 arthur
Dim SqlStr = "Delete member where member_id='" & DelMemberID.Text & "' and password='" & DelPassWord.Text & "'"
Dim MyCommand As New SqlClient.SqlCommand(SqlStr, Module1.ConnStr)
MyCommand.Connection.Open()
Try
    MyCommand.ExecuteNonQuery()
    MyCommand.Connection.Close()
    Response.Write("<script language='JavaScript'>alert('資料已刪除');window.location.href='default.aspx';</script>")
Catch
    MyCommand.Connection.Close()
    Response.Write("<script language='JavaScript'>alert('輸入的帳號密碼有誤');return false;</script>")
End Try
上述的程式是我希望當DelMemberID或DelPassWord輸入的字串在資料庫找不到資料時所寫的除錯程式,可是不管我輸入的字串對或錯它都只跑Try的部份,都不會跑Catch的部份,請教各位我哪裡出錯了?~"~

本篇文章發表於2003-11-05 17:10
1樓
回應

Stanley
檢舉此回應
你的SQL字串改一下試試看:
Dim SqlStr = "DELETE FROM member WHERE member_id='" & DelMemberID.Text & "' AND password='" & DelPassWord.Text & "'"
本篇文章回覆於2003-11-05 23:33
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

arthur
捐贈 VP 給 arthur 檢舉此回應
還是不行~"~
本篇文章回覆於2003-11-06 09:14
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

Stanley
檢舉此回應
搞了半天真的是
Try
    ....
    ....
Catch ex As Exception()

    MyCommand.Connection.Close()
    Response.Write("<script language='JavaScript'>alert('輸入的帳號密碼有誤');return false;</script>")

End Try

你必須要宣告變數接收錯誤ㄚ

而且就算他輸入的資料不對它應該也不會出錯ㄚ,因為程式撰寫沒有問題,只是邏輯上出了問題,你為何不Dim 一個判斷的布林變數,然後再你刪除資料的同時判斷的變數變成True,最後再用If去判斷如果布林變數是False的話就秀出
Response.Write("<script language='JavaScript'>alert('輸入的帳號密碼有誤');return false;</script>")
這樣不是更好嗎?為何要被限定在於VB.NET的元件呢?一些東西可以自己做會比較好!!
本篇文章回覆於2003-11-06 09:47
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

arthur
捐贈 VP 給 arthur 檢舉此回應
刪除資料的同時判斷變數是否為True?能教一下怎麼寫嗎?謝謝!
還有,我就是不懂不會不明白才會來請教各位高手的嘛~~
本篇文章回覆於2003-11-06 10:16
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
最有價值解答

Stanley
檢舉此回應
Dim intCheck = New Integer()
Dim conn As New SqlClient.SqlConnection("連線字串")
Dim comm As New SqlClient.SqlXommand("SELECT * FROM member WHERE member_id='" & DelMemberID.Text & "' AND password='" & DelPassWord.Text & "'",conn)
comm.Connection.Open()
Dim reader As SqlClient.SqlDataReader = comm.ExecuteReader()
Do While reader.Read()
    intCheck = 1
    reader.Close();reader = Nothing()
    comm.CommandText = "DELETE FROM member WHERE member_id='" & DelMemberID.Text & "' AND password='" & DelPassWord.Text & "'"
    comm.ExecuteNonQuery()
    Response.Write("<script language='JavaScript'>alert('資料已刪除');window.location.href='default.aspx';</script>")
Loop
conn.Close() : conn.Dispose() : conn = Nothing()
IF intCheck = 0 Then
    Response.Write("<script language='JavaScript'>alert('輸入的帳號密碼有誤');return false;</script>")
End If
本篇文章回覆於2003-11-06 10:32
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

arthur
捐贈 VP 給 arthur 檢舉此回應
知道了!了解了!感恩^^
本篇文章回覆於2003-11-06 10:45
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

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