私を助けてください。私が作成している小切手印刷システムでは、正常に動作する前に削除方法を追加しましたが、フィールドCheck_Number
をtext
からnumber
に変更したときに、データ行が削除されなくなりました。それは私が選択します。私は削除セクションからコードを変更することを覚えていません。あなたはこれをどのように解決するか考えていますか?前もって感謝します。もっと力を!DataGridビューからレコードを削除
異なるBank_は[BankName] FFフィールドおよびデータ型を有する:
ID - AutoNumber
Check_Number - Number
Company_ID - Text
マイVN_ZAM
テーブルは、FFフィールドおよびデータ型を有する:
ID - AutoNumber
Voucher_Number - Number
Check_Number - Text
Bank_Type - Text
Company_ID - Text
マイSS
テーブルは、FFフィールドを有し、データタイプ(データグリッドビュー内のデータが取得される場所でもあります):
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
私のdatagridviewの注文は次のようになります:
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
私は "*削除" 構文に慣れていませんよ。あなたはそれについての参考資料を提供できますか? – Strawberry
「削除」の構文に精通していないことをあなたが理解していませんが、データベースからレコードを永久に削除するために使用するクエリです。おかげさまで、ありがとうございます。 @Strawberry – Louie
これは '' DELETE * ''ではなく '' DELETE ''です。 – Strawberry