![](/img/trans.png)
[英]VB.NET Save the delete command in access database in datagridview
[英]Delete Datagridview rows as well as in my access database vb.net
這是我的代碼,用於將數據庫中的數據加載到datagrid
Private Sub Records_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim connString As String = "Provider=Microsoft.Ace.Oledb.12.0; Data Source=" & My.Application.Info.DirectoryPath.ToString() & "\BackUp\Database3.Accdb;"
Dim MyConn As OleDbConnection
Dim da As OleDbDataAdapter
Dim ds As DataSet
Dim tables As DataTableCollection
Dim source1 As New BindingSource
MyConn = New OleDbConnection
MyConn.ConnectionString = connString
ds = New DataSet
tables = ds.Tables
da = New OleDbDataAdapter("Select * from [userinfo] ORDER BY ID", MyConn) 'Change items to your database name
da.Fill(ds, "userinfo") 'Change items to your database name
Dim cb = New OleDbCommandBuilder(da)
Dim view As New DataView(tables(0))
source1.DataSource = view
DataGridView1.DataSource = view
End Sub
這是我的刪除按鈕,用於刪除datagrid中的選定行,但是整個表都被刪除(我知道這是因為我知道SQL正在工作,所以我將其刪除了整個表)
Private Sub cmdDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdDelete.Click
Dim connString As String = "Provider=Microsoft.Ace.Oledb.12.0; Data Source=" & My.Application.Info.DirectoryPath.ToString() & "\BackUp\Database3.Accdb;"
Dim MyConn As OleDbConnection
Dim da As OleDbDataAdapter
Dim ds As DataSet
Dim tables As DataTableCollection
Dim source1 As New BindingSource
Dim row As New Integer
Try
MyConn = New OleDbConnection
MyConn.ConnectionString = connString
ds = New DataSet
tables = (ds.Tables)
da = New OleDbDataAdapter("Delete * from [userinfo]", MyConn)
da.Fill(ds, "userinfo")
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
我想刪除數據網格中的選定行。 先感謝您
Delete * from [userinfo]
將刪除表中的所有內容。 傳遞您的ID即可將其刪除。 例如。 Delete * from [userinfo] where ID=5
您可以使用Datagridview.SelectedRows屬性找到選定的行。 傳遞ID列索引,您將獲得ID。
例如。 "Delete * from [userinfo] where ID=" & DataGridView1.SelectedRows(0).Cells(0).Value.ToString()
如果您允許多選,請循環瀏覽要刪除的行。 為了安全起見,還可以使用參數將變量傳遞給查詢。
對不起,我的英語不好。 第1步:聆聽單擊Datagrid
Private Sub datagridview_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles datagridview.CellClick
步驟2:點擊哪一列
datagridview.Rows.Item(e.RowIndex).Cells(0).Value
步驟3:從數據庫中刪除
Dim sqlcmd As String = "delete from [userinfo] where YourColumn = '" & datagridview.Rows.Item(e.RowIndex).Cells(0).Value & "'"
完整代碼:
Private Sub Datagridview_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView.CellClick
Try
Dim MyConn As OleDbConnection
Dim connString As String = "Provider=Microsoft.Ace.Oledb.12.0; Data Source=" & My.Application.Info.DirectoryPath.ToString() & "\BackUp\Database3.Accdb;"
MyConn = New OleDbConnection
Dim cmdstr As String = "delete * from [userinfo] where YourColumn = '" & DataGridView.Rows.Item(e.RowIndex).Cells(0).Value & "'"
Dim cmd As New OleDbCommand(cmdstr, MyConn)
MyConn.Open()
cmd.ExecuteNonQuery()
MyConn.Close()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
引用刪除的行值的方法是刪除行表中的行原始值:
dt is datasource of datagridview
Dim dtDelete As DataTable = dt.GetChanges(DataRowState.Deleted)
cmd.Parameters.AddWithValue("@GridValue", r("Gridcolumn", DataRowVersion.Original))
示例是SQL,但方法不是特定的
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.