Bitte helfen Sie mir. Ich fügte eine Löschmethode in das Prüfdrucksystem, das ich erstelle, hinzu, bevor es gut funktionierte, aber als ich den Datentyp des Feldes von text
zu number
von ihren jeweiligen Tabellen änderte, löscht es nicht mehr die Datenreihe das wähle ich aus. Ich kann mich nicht erinnern, irgendeinen Code aus dem Löschbereich geändert zu haben. Haben Sie eine Idee, wie Sie das lösen können? Vielen Dank im Voraus. Mehr Macht!Datensatz aus einer Datagrid-Ansicht löschen
Die verschiedenen Bank_ [Bankname] die ff Felder und Datentypen:
ID - AutoNumber
Check_Number - Number
Company_ID - Text
Meine VN_ZAM
Tabelle hat die ff Felder und Datentypen:
ID - AutoNumber
Voucher_Number - Number
Check_Number - Text
Bank_Type - Text
Company_ID - Text
Mein SS
Tabelle sind die ff Felder hat und Datentypen (hier werden auch die Daten in der Datagrid-Ansicht verwendet):
ID - AutoNumber
Check_No - Text
Voucher_No - Text
Issue_Date - Date/Time
Company_Name - Text
Bank_Type - Text
Amount_in_Figure - Number
Amount_in_Words - Text
Payee - Text
My Datagridview, um wie folgt aussieht:
ID | Check_No | Voucher_No | Issue_Date | Company_Name |Bank_Type | Amount_in_Figure | Amount_in_Words | Payee
.
Private Sub btnDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDelete.Click
Dim provider As String
Dim dataFile As String
Dim connString As String
Dim myConnection As OleDbConnection = New OleDbConnection
Dim sql As String
Dim sql1 As String
Dim sql2 As String
Dim answer As Integer
answer = MsgBox("Are you sure you want to delete this record?", vbYesNo + vbDefaultButton1, "Information")
'If answer = vbYes Then
provider = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source ="
dataFile = "C:\Users\Pc\Documents\Visual Studio 2010\Projects\bankCheckSystem\dbcheckprintsystem.accdb"
connString = provider & dataFile
myConnection.ConnectionString = connString
myConnection.Open()
sql = "DELETE * FROM SS WHERE ID =" & dgvSSCheckRecords.SelectedRows(0).Cells(0).Value.ToString()
If dgvSSCheckRecords.SelectedRows(0).Cells(12).Value.ToString() = "ZAM" Then
sql1 = "DELETE * FROM VN_ZAM WHERE Company_ID = '" & dgvSSCheckRecords.SelectedRows(0).Cells(4).Value.ToString() & "_" & dgvSSCheckRecords.SelectedRows(0).Cells(0).Value.ToString() & "' "
Dim cmd As OleDbCommand = New OleDbCommand(sql, myConnection)
Dim cmd1 As OleDbCommand = New OleDbCommand(sql1, myConnection)
'cmd.ExecuteNonQuery()
'cmd1.ExecuteNonQuery()
If dgvSSCheckRecords.SelectedRows(0).Cells(5).Value.ToString() = "BDO" Then
sql2 = "DELETE * FROM Bank_BDO WHERE Company_ID = '" & dgvSSCheckRecords.SelectedRows(0).Cells(4).Value.ToString() & "_" & dgvSSCheckRecords.SelectedRows(0).Cells(0).Value.ToString() & "' AND Check_Number ='" & dgvSSCheckRecords.SelectedRows(0).Cells(1).Value.ToString() & "'"
Dim cmd2 As OleDbCommand = New OleDbCommand(sql2, myConnection)
cmd.ExecuteNonQuery()
cmd1.ExecuteNonQuery()
cmd2.ExecuteNonQuery()
ElseIf dgvSSCheckRecords.SelectedRows(0).Cells(5).Value.ToString() = "BPI" Then
sql2 = "DELETE * FROM Bank_BPI WHERE Company_ID = '" & dgvSSCheckRecords.SelectedRows(0).Cells(4).Value.ToString() & "_" & dgvSSCheckRecords.SelectedRows(0).Cells(0).Value.ToString() & "' AND Check_Number ='" & dgvSSCheckRecords.SelectedRows(0).Cells(1).Value.ToString() & "'"
Dim cmd2 As OleDbCommand = New OleDbCommand(sql2, myConnection)
cmd.ExecuteNonQuery()
cmd1.ExecuteNonQuery()
cmd2.ExecuteNonQuery()
End if
End Sub
Ich bin nicht vertraut mit "Löschen *" Syntax. Können Sie eine Referenz dafür angeben? – Strawberry
Ich bin nicht sicher, was Sie mit Ihnen gemeint haben sind nicht vertraut mit "Löschen" -Syntax, aber es ist eine Abfrage, die ich verwenden, um einen Datensatz dauerhaft aus der Datenbank zu löschen. https://www.tutorialspoint.com/mysql/mysql-delete-query.htm Vielen Dank. @ Strawberry – Louie
Das ist '" DELETE "', nicht '" DELETE * "' – Strawberry