在datagridview访问中搜索和删除数据 [英] Search and delete data in datagridview access
本文介绍了在datagridview访问中搜索和删除数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个带有两个链接表的数据库
1 - 我想修改所有列中的搜索代码而不重复数据
2 - 我想删除一个行和保存过程
我的项目
https://www.dropbox.com/s /728o1avffkqdajo/salling2.rar?dl=0
我的尝试:
我的项目
https://www.dropbox.com/s/728o1avffkqdajo/salling2.rar?dl=0
解决方案
所有代码
进口系统。 Data.OleDb
Public Class Form1
Public con As New OleDb.OleDbConnection(provider = microsoft.ace.oledb.12.0; data source =& Application.StartupPath&\\ \\ _web_database.accdb; Jet OLEDB:数据库密码= kluytiaSDqwer3210549)
Dim DataSet1 As New DataSet
Dim BindingSource1 As BindingSource
Dim BindingSource2 As BindingSource
Dim DataAdapter1 As New OleDbDataAdapter
Sub conn()
Dim cmd As OleDbCommand = New OleDbCommand(SELECT tb1.ID_mail,tb1.clien_mail,tb1.model_mail,tb2.probl_acce,tb2.main_acce,tb2.typ_acce FROM tb1,tb2其中tb1.ID_mail = tb2.ID_acce,con)
con.Open()
DataAdapter1 = New OleDbDataAdapter(cmd)
Dim builder As OleDbCommandBuilder = New OleDbCommandBuilder(DataAdapter1)
DataSet1 = New DataSet()
DataAdapter1.Fill(DataSet1,tb1,tb2)
DataGridView1.DataSource = DataSet1
DataGridView1.DataMember =tb1,tb2
con。 Close()
End Sub
Private Sub Form1_Load(sender As System.Object,e As System.EventArgs)Handles MyBase.Load
try
conn()
DataGridView1.Columns(0).ReadOnly = True
DataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
DataGridVie w1.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
DataGridView1.Sort(DataGridView1.Columns(0),System.ComponentModel.ListSortDirection.Ascending)
count()
Catch ex As Exception
MessageBox.Show(ex.Message,Error,MessageBoxButtons.OK,MessageBoxIcon.Error)
结束尝试
End Sub
公共子计数()
On Error Resume Next
Dim记录,当前为Integer
records = BindingSource1。数
current = BindingSource1.Position + 1
Label1.Text = current.ToString& 来自& records.ToString
End Sub
Private Sub delete_Click(sender As System.Object,e As System.EventArgs)处理delete.Click
试试
如果DataGridView1.RowCount< = 0那么
退出Sub
结束如果
DataGridView1.ClearSelection()
Dim a As Integer
DataGridView1.Rows( DataGridView1.CurrentRow.Index).Selected = True
a = DataGridView1.Rows.GetLastRow(DataGridViewElementStates.Selected).ToString + 1
DataGridView1.Rows.RemoveAt(DataGridView1.CurrentRow.Index)
Validate ()
DataGridView1.Refresh()
DataAdapter1.Update(DataSet1,tb1,tb2)
DataSet1.AcceptChanges()
conn()
count()
MsgBox(ok,64 + 524288,delete)
Catch ex As Exception
MessageBox.Show(ex.Message,Error,MessageBoxButto ns.OK,MessageBoxIcon.Error)
结束尝试
结束Sub
Private Sub search_Click(sender As System.Object,e As System。 EventArgs)处理search.Click
尝试
如果IsNumeric(TextBox1.Text)= False那么
Dim DataAdapter As New OleDbDataAdapter(SELECT tb1.ID_mail,tb1 .clien_mail,tb1.model_mail,tb2.probl_acce,tb2.main_acce,tb2.typ_acce FROM tb1,tb2 where clien_mail LIKE'&修剪
(TextBox1.Text)&
%'或model_mail like'&修剪
(TextBox1.Text)&
%'或probl_acce like'&修剪
I have a database with two linked tables
1-I want to modify the search code in all columns without repeating the data
2-I want to delete a row and save the process
my project
https://www.dropbox.com/s/728o1avffkqdajo/salling2.rar?dl=0
What I have tried:
my project https://www.dropbox.com/s/728o1avffkqdajo/salling2.rar?dl=0
解决方案
all code
Imports System.Data.OleDb Public Class Form1 Public con As New OleDb.OleDbConnection("provider=microsoft.ace.oledb.12.0;data source=" & Application.StartupPath & "\web_database.accdb;Jet OLEDB:Database Password=kluytiaSDqwer3210549") Dim DataSet1 As New DataSet Dim BindingSource1 As BindingSource Dim BindingSource2 As BindingSource Dim DataAdapter1 As New OleDbDataAdapter Sub conn() Dim cmd As OleDbCommand = New OleDbCommand("SELECT tb1.ID_mail ,tb1.clien_mail, tb1.model_mail, tb2.probl_acce,tb2.main_acce,tb2.typ_acce FROM tb1, tb2 where tb1.ID_mail = tb2.ID_acce", con) con.Open() DataAdapter1 = New OleDbDataAdapter(cmd) Dim builder As OleDbCommandBuilder = New OleDbCommandBuilder(DataAdapter1) DataSet1 = New DataSet() DataAdapter1.Fill(DataSet1, "tb1,tb2") DataGridView1.DataSource = DataSet1 DataGridView1.DataMember = "tb1,tb2" con.Close() End Sub Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load Try conn() DataGridView1.Columns(0).ReadOnly = True DataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter DataGridView1.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter DataGridView1.Sort(DataGridView1.Columns(0), System.ComponentModel.ListSortDirection.Ascending) count() Catch ex As Exception MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error) End Try End Sub Public Sub count() On Error Resume Next Dim records, current As Integer records = BindingSource1.Count current = BindingSource1.Position + 1 Label1.Text = current.ToString & " from " & records.ToString End Sub Private Sub delete_Click(sender As System.Object, e As System.EventArgs) Handles delete.Click Try If DataGridView1.RowCount <= 0 Then Exit Sub End If DataGridView1.ClearSelection() Dim a As Integer DataGridView1.Rows(DataGridView1.CurrentRow.Index).Selected = True a = DataGridView1.Rows.GetLastRow(DataGridViewElementStates.Selected).ToString + 1 DataGridView1.Rows.RemoveAt(DataGridView1.CurrentRow.Index) Validate() DataGridView1.Refresh() DataAdapter1.Update(DataSet1, "tb1,tb2") DataSet1.AcceptChanges() conn() count() MsgBox("ok", 64 + 524288, "delete") Catch ex As Exception MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error) End Try End Sub Private Sub search_Click(sender As System.Object, e As System.EventArgs) Handles search.Click Try If IsNumeric(TextBox1.Text) = False Then Dim DataAdapter As New OleDbDataAdapter("SELECT tb1.ID_mail ,tb1.clien_mail, tb1.model_mail, tb2.probl_acce,tb2.main_acce,tb2.typ_acce FROM tb1,tb2 where clien_mail LIKE '" & Trim
(TextBox1.Text) & "%' or model_mail like '" & Trim
(TextBox1.Text) & "%' or probl_acce like '" & Trim
这篇关于在datagridview访问中搜索和删除数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文