ช่วยด้วยครับ ผมลบข้อมูลในฐานข้อมูลไม่ได้ ผมต้องการที่จะลบ ข้อมูลที่แสดงใน หน้าเพจ เมื่อกด ลบ แต่ว่ามันไม่ยอมลบ
ถามแบบนี้ไม่เห็นภาพเลยครับ.. ช่วยได้ลำบากอย่างยิ่ง
1.ต้องเห็น sorce code ถึงจะมองภาพโดยรวมให้แก้ไขได้ ซึ่ง ในกรณีนี้ ไม่มีข้อมูลเลย ทำให้เจาะลึกลงใน coding ไม่ได้ ซึ่งผ่านไม่ผ่านอย่างไร คงต้องอ่านในหัวข้อถัดไปครับ
2.ต้องเห็น error code ซึ่ง ที่บอกมาว่าไม่มี error คือว่าว่า "ลองรันดูก็ผ่าน" ผมเดาว่ามี message บอกว่า ทำการลบข้อมูลเรียบร้อยแล้วนะครับ
มาถึงวิธีการแก้ไขเบื้องต้น
1. ไปดักค่าใน source code ตรงส่วนที่ทำการ ลบ หลังจากลบ แล้ว ให้ response.write อะไรออกมาก็ได้ เป็นการช่วย debug ได้ในเบื้องต้น (หลังจาก conn.execute หรือ RS.Update นะครับ)
2. จากข้อ 1 ถ้า write ค่า ออกมาแสดงว่า ผ่านกระบวนการ delete record จริงๆ แต่มันไม่ยอมลบ โดยไม่แสดง error อีกด้วยก็ให้ Rem ช่วงที่ เค้าเขียนให้ delete record ของ code เก่า แล้วเราเขียน code ใหม่ สั่งให้ลบ ดู โดยเขียนง่ายๆ ว่าเข้าไปจัดการลบได้หรือไม่ เพื่อจำกัดวงของ error ให้แคบลง
3. ถึงตอนนี้ คงจะทราบแล้ว ว่าปัญหาเกิดจากอะไร เพราะถึงตรงนี้ต้องลบได้แล้ว เพราะผ่านข้อ 2 มา...ถ้าลบได้ ก็แสดงว่า code ส่วนนั้น(การลบมีปัญหา) ถ้าลบไม่ได้ ก็ฐานข้อมูลมีปัญหา เช่น เขียน sql ไม่ตรง table ไม่มี db ไม่พบ (แต่ตรงนี้น่าจะแสดง error ออกมา ...)
ปล.. การเขียน script ASP ปัญหาส่วนใหญ่จะอยู่ที่ coding นะครับ ไม่ได้อยู่ที่ตัวฐานข้อมูล ที่ตัวฐานข้อมูล ที่มีปัญหากันก็คือ permission เท่านั้นเอง ว่าเราตั้ง ให้ write ได้รึไม่ ลองเช็คดูตรงนี้ก็ได้ครับ
Date :
7 เม.ย. 2550 00:05:13
By :
มังคุด
Private Sub Btndelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btndelete.Click
Me.Cursor = Cursors.Default
Try
If MessageBox.Show("คุณต้องการลบไฟล์ " & FullFileName & " ใช่หรือไม่?", "คำยืนยัน", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
sw.Reset()
sw.Start()
Dim ResID As String
With DataGrid
bmb = .BindingContext(.DataSource, .DataMember)
drw = DirectCast(bmb.Current, DataRowView).Row
FullFileName = CStr(drw("St_card"))
ResID = drw("St_card").ToString()
drw.Delete()
tr = Conn.BeginTransaction()
sb.Remove(0, sb.Length())
sb.Append("DELETE FROM Student")
sb.Append(" WHERE (St_card=@St_card)")
Dim sqlDelete As String
sqlDelete = sb.ToString()
With com
.CommandText = sqlDelete
.Transaction = tr
.Parameters.Clear()
.Parameters.Add("@St_card", SqlDbType.NVarChar).Value = Txtcard.Text
.ExecuteNonQuery()
End With
End With
tr.Commit()
sw.Stop()
ProcessTime = sw.ElapsedMilliseconds / 1000
_ToolStripLabel.Text = "เวลาที่ใช้ : " & ProcessTime.ToString("0.0000") & " วินาที"
ClearAllData()
DataGrid.Focus()
MessageBox.Show("ลบข้อมูล เรียบร้อยแล้ว !!! ", "ผลการทำงาน", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
Catch ex As Exception
MessageBox.Show("ไม่สามารถลบข้อมูลได้ เนื่องจาก " & ex.Message, "ข้อผิดพลาด", MessageBoxButtons.OK, MessageBoxIcon.Information)
tr.Rollback()
End Try
Me.Cursor = Cursors.Default
End Sub
Date :
2009-04-14 12:26:44
By :
konkorat
ขอโทษลืมบอกว่าช่วยตรวจสอบว่าโค้ดในการลบข้อมูลผิดตรงไหน
Date :
2009-04-14 12:34:59
By :
konkorat
จาลบโค้ดเก่าอ่ะค่ะแต่ว่าลบม่ายด้ายอ่ะ แร้วก้อจาใส่โค้ดใหม่ก้อใส่ม่ายด้าย แก้ไขอารายม่ายด้ายเรย ทำไงดีค่ะ ช่วยตอบด้วย
Date :
2009-07-25 11:00:14
By :
oil
Load balance : Server 05