在datagridview访问中搜索和删除数据 [英] Search and delete data in datagridview access

查看:58
本文介绍了在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆