2013-12-16 2 views
-3

SQL Server 데이터베이스에서 레코드를 삭제하기 위해이 코드를 작성했습니다.데이터베이스 (SQL 서버)에서 레코드를 삭제할 수 없습니다.

Private sub cmdDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdDelete.Click 

    Dim strconnection As String = "Data Source=EASMAR-PC;Initial Catalog=DatabaseConnection;Integrated Security=True;" 

    Dim _cn As SqlConnection = New SqlConnection(strconnection) 
    Dim cmd As New SqlCommand 
    _cn.Open() 
    Try 
     _DataSet.Tables(0).Rows(CInt(txtCurrent.Text) - 1).Delete() 

     Dim adapter As New SqlDataAdapter 
     Dim cmdBuilder As New SqlCommandBuilder(adapter) 
     Dim DutyDetails As String = "SELECT ID from tblCustomer" 

     adapter.SelectCommand = New SqlCommand(DutyDetails, _cn) 
     adapter.UpdateCommand = cmdBuilder.GetUpdateCommand 
     adapter.DeleteCommand = cmdBuilder.GetDeleteCommand 

     Dim cb As SqlCommandBuilder = New SqlCommandBuilder(adapter) 

     adapter.Update(_DataSet.Tables("0")) 
End sub 

내가 누락 된 항목이 있습니까?

오류가 발생하지 않습니다. 그러나 기록은 여전히 ​​존재합니다.

어떤 도움이 필요합니까?

당신이

+0

난 그렇게 생각하지 않습니다. 나는 체크했다 :/ – user2968155

+2

나는 당신이 실제로 deleteCommand를 호출하고있는 것을 볼 수 없다. –

답변

0

을 :)보다이 시도 :

Private Sub DeleteRecord(recordID As Integer) 
    ' define connection string 
    Dim connString As String = "Data Source=EASMAR-PC;Initial Catalog=DatabaseConnection;Integrated Security=True;" 

    ' define SQL statement to execute, using a **PARAMETRIZED** query 
    Dim deleteStmt As String = "DELETE FROM dbo.tblCustomer WHERE CustomerID = @ID" 

    Using conn As New SqlConnection(connString) 
     Using cmd As New SqlCommand(deleteStmt, conn) 
      ' define parameter 
      cmd.Parameters.Add("@ID", SqlDbType.Int).Value = recordID 

      ' open connection, execute DELETE, close connection 
      conn.Open() 
      cmd.ExecuteNonQuery() 
      conn.Close() 
     End Using 
    End Using 
End Sub 
관련 문제