加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

VB.NET数据库另一种添加删除操作

发布时间:2020-12-16 22:47:47 所属栏目:大数据 来源:网络整理
导读:第一步:定义一个属性类,以备其它方法使用 Public Class MTarecls '保持属性值的局部变量 Private mvarID As Integer 'ID Private mvarSite As String '站点 Private mvarOperator As String '操作员 Private mvarMatter As String '提单号 Private mvarNow
第一步:定义一个属性类,以备其它方法使用
Public Class MTarecls

    '保持属性值的局部变量
    Private mvarID As Integer           'ID
    Private mvarSite As String          '站点
    Private mvarOperator As String      '操作员
    Private mvarMatter As String    '提单号
    Private mvarNowDate As Date         '日期
    Private mvarNotes As String         '备注

    Public Property ID() As Integer     'ID号
        Get
            Return mvarID
        End Get
        Set(ByVal value As Integer)
            mvarID = value
        End Set
    End Property

    Public Property Site() As String
        Get
            Return mvarSite
        End Get
        Set(ByVal Value As String)
            mvarSite = Value
        End Set
    End Property

    Public Property Worker() As String
        Get
            Return mvarOperator
        End Get
        Set(ByVal Value As String)
            mvarOperator = Value
        End Set
    End Property

    Public Property Matter() As String
        Get
            Return mvarMatter
        End Get
        Set(ByVal Value As String)
            mvarMatter = Value
        End Set
    End Property

    Public Property NowDate() As Date
        Get
            Return mvarNowDate
        End Get
        Set(ByVal Value As Date)
            mvarNowDate = Value
        End Set
    End Property

    Property Notes() As String
        Get
            Return mvarNotes

        End Get
        Set(ByVal value As String)
            mvarNotes = value
        End Set
    End Property

End Class



第二步:Form操作方法

Public Class Form1
    Dim mytest As New MTarecls

    Private Sub Button1_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Button1.Click
        With mytest
            .ID = 0
            .Site = "2"
            .Worker = "张三"
            .Matter = ""
            .NowDate = Now
            .Notes = "fffffff"
        End With
        Dim Mobj As New Btarecls
        Mobj.Insert(mytest)
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Button2.Click
        With mytest
            .ID = 1
            .Site = "2"
            .Worker = "李四"
            .Matter = ""
            .NowDate = Now
            .Notes = "fffffff"
        End With

        Dim Mobj As New Btarecls
        Mobj.Update(mytest)
    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Button3.Click
        With mytest
            .ID = 3
        End With

        Dim Mobj As New Btarecls
        Mobj.Delete(1)
    End Sub

    Private Sub Button4_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Button4.Click
        Dim mynew As ArrayList
        Dim myT As MTarecls
        Dim Myobj As New Btarecls
        mynew = Myobj.Find("2")
        If mynew Is Nothing Then
            MsgBox("没有记录!")
        Else
            MsgBox(mynew.Count.ToString)
            For i = 0 To mynew.Count - 1
                myT = mynew.Item(i)
                Console.WriteLine(myT.ID.ToString)
            Next
        End If
    End Sub

    Private Sub Button5_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Button5.Click
        Dim Mynew As New MTarecls
        Dim mObj As New Btarecls
        Mynew = mObj.Find(2)
        If Mynew Is Nothing Then
            MsgBox("no recorder")
        Else
            MsgBox(Mynew.Worker.ToString)
        End If

    End Sub
End Class


第三步  定义一个操作方法类
Imports System.Data.OleDb

Public Class Btarecls
    Public Const cTableName As String = "tbLog"     'Table
    Public Const cID As String = "ID"                   'ID
    Public Const cSite As String = "站点"               '站点
    Public Const cOperator As String = "操作者"       '操作员
    Public Const cMatter As String = "事件"           'shijian
    Public Const cNowDate As String = "日期"         '日期
    Public Const cNotes As String = "备注"             '备注

    Private CONNSTRING As String = Global.TestTare_ok.My.MySettings.Default.dbConnstring
    Private Const SELECTSQL As String = "tbLogSelectCommand"
    Private Const UPDATESQL As String = "tbLogUpdateCommand"
    Private Const DELETESQL As String = "tbLogDeleteCommand"  '"DELETE FROM tbTare WHERE ID=?"
    Private Const INSERTSQL As String = "tbLogInsertCommand"
    Private Const FINDSQL As String = "select * from tbLog  where  站点=?"
    ' Private Const REPLYSQL As String = "ReplyMessage"

    Private cnn As OleDbConnection
    Private InsCmd As OleDbCommand
    Private DelCmd As OleDbCommand
    Private SelCmd As OleDbCommand
    Private UpdCmd As OleDbCommand
    Private FndCmd As OleDbCommand
    Private DAdapter As OleDbDataAdapter
    Private table As DataTable

    Public Sub New()
        createTable()
        Initcmd()
    End Sub

    '在数据中按字段要求建一个表
    Private Sub createTable()
        table = New DataTable(cTableName)
        Dim dt As DataTable = table

        '生成器表的主键列,自动增量
        Dim Column As DataColumn = dt.Columns.Add(cID,GetType(System.Int32))
        Column.AllowDBNull = False
        Column.AutoIncrement = True
        Dim pkeys(0) As DataColumn
        pkeys(0) = Column
        dt.PrimaryKey = pkeys

        dt.Columns.Add(cSite,GetType(System.String)).AllowDBNull = True
        dt.Columns.Add(cOperator,GetType(System.String)).AllowDBNull = True
        dt.Columns.Add(cMatter,GetType(System.String)).AllowDBNull = True
        dt.Columns.Add(cNowDate,GetType(System.DateTime)).AllowDBNull = True
        dt.Columns.Add(cNotes,GetType(System.String)).AllowDBNull = True
    End Sub

    '初始化各命令及适配器
    Private Sub Initcmd()

        Me.cnn = New OleDbConnection(CONNSTRING)
        getInsCmd()
        getUpdCmd()
        getSelCmd()
        getDelCmd()
        getFndCmd()
        'DAdapter
        '
        Me.DAdapter = New OleDbDataAdapter
        Me.DAdapter.DeleteCommand = Me.DelCmd
        Me.DAdapter.InsertCommand = Me.InsCmd
        Me.DAdapter.SelectCommand = Me.SelCmd
        Me.DAdapter.UpdateCommand = Me.UpdCmd

        Me.DAdapter.TableMappings.AddRange( _
           New System.Data.Common.DataTableMapping() { _
               New System.Data.Common.DataTableMapping("Table",cTableName,_
                   New System.Data.Common.DataColumnMapping() { _
                   New System.Data.Common.DataColumnMapping(cID,cID),_
                   New System.Data.Common.DataColumnMapping(cSite,cSite),_
                   New System.Data.Common.DataColumnMapping(cOperator,cOperator),_
                   New System.Data.Common.DataColumnMapping(cMatter,cMatter),_
                   New System.Data.Common.DataColumnMapping(cNowDate,cNowDate),_
                   New System.Data.Common.DataColumnMapping(cNotes,cNotes) _
                   })})
    End Sub

    Private Sub openConnection()
        If cnn Is Nothing Then
            cnn = New OleDbConnection(CONNSTRING)
        End If
        If cnn.State <> ConnectionState.Open Then
            cnn.Open()
        End If
    End Sub

    '建立SelectCommand对象
    Private Sub getSelCmd()
        If SelCmd Is Nothing Then
            SelCmd = New OleDbCommand(SELECTSQL,cnn)
            SelCmd.CommandType = CommandType.StoredProcedure
            SelCmd.Parameters.AddRange(New OleDbParameter() { _
            New OleDbParameter(cID,OleDbType.Integer,cID)})
            ''New OleDbParameter(C_SHIP,OleDbType.VarChar,C_SHIP),_
            ''New OleDbParameter(C_LUSHU,OleDbType.Single,C_LUSHU),_
            'New OleDbParameter(C_pkid,C_pkid) _
            '   })
        End If
    End Sub

    '建立InsertCommand对象
    Private Sub getInsCmd()
        If InsCmd Is Nothing Then
            InsCmd = New OleDbCommand(INSERTSQL,cnn)
            InsCmd.CommandType = CommandType.StoredProcedure
            Me.InsCmd.Parameters.AddRange(New OleDbParameter() { _
            New OleDbParameter(cID,_
            New OleDbParameter(cSite,_
            New OleDbParameter(cOperator,_
            New OleDbParameter(cMatter,_
            New OleDbParameter(cNowDate,OleDbType.DBTimeStamp,_
            New OleDbParameter(cNotes,cNotes)})
        End If
    End Sub

    '建立UpdateCommand对象
    Private Sub getUpdCmd()
        If UpdCmd Is Nothing Then
            UpdCmd = New OleDbCommand(UPDATESQL,cnn)
            UpdCmd.CommandType = CommandType.StoredProcedure
            Me.UpdCmd.Parameters.AddRange(New OleDbParameter() { _
            New OleDbParameter(cID,cNotes)})
        End If
    End Sub

    '建立DeleteCommand对象
    Private Sub getDelCmd()
        If DelCmd Is Nothing Then
            DelCmd = New OleDbCommand(DELETESQL,cnn)
            DelCmd.CommandType = CommandType.StoredProcedure
            DelCmd.Parameters.AddRange(New OleDbParameter() { _
                        New OleDbParameter(cID,cID)})
        End If
    End Sub

    '建立FindCommand对象
    Private Sub getFndCmd()
        If FndCmd Is Nothing Then
            FndCmd = New OleDbCommand(FINDSQL,cnn)
            FndCmd.CommandType = CommandType.Text
            FndCmd.Parameters.AddRange(New OleDbParameter() { _
             New OleDbParameter(cSite,0)})
            'New OleDbParameter(cTravelNo,0),_
            'New OleDbParameter(cLOnes,0)
        End If
    End Sub

    '向数据库中增加一个供应商实体对象 
    Function Insert(ByVal s As MTarecls) As Boolean
        '打开连接
        openConnection()
        getInsCmd()         '获取一个Insert的Command对象
        Try
            With InsCmd
                '填写存储过程所需要的参数
                .Parameters(cID).Value = s.ID
                .Parameters(cSite).Value = s.Site              
                .Parameters(cOperator).Value = s.Worker
                .Parameters(cMatter).Value = s.Matter
                .Parameters(cNowDate).Value = s.NowDate
                .Parameters(cNotes).Value = s.Notes
                '执行Insert操作
                .ExecuteNonQuery()
            End With
            Return True
        Catch ex As Exception
            MessageBox.Show(ex.Message)
            Return False
        End Try
    End Function

    '修改某个供应商实体信息
    Function Update(ByVal s As MTarecls) As Boolean
        '打开连接
        openConnection()
        '生成Update的Command对象
        getUpdCmd()
        Try
            With UpdCmd
                '填写存储过程所需要的参数
                .Parameters(cID).Value = s.ID
                .Parameters(cSite).Value = s.Site
                .Parameters(cOperator).Value = s.Worker
                .Parameters(cMatter).Value = s.Matter
                .Parameters(cNowDate).Value = s.NowDate
                .Parameters(cNotes).Value = s.Notes
                '执行Insert操作
                .ExecuteNonQuery()
            End With
            Return True
        Catch ex As Exception
            MessageBox.Show(ex.Message)
            Return False
        End Try
    End Function

    '从数据库中删除某个供应商实价体
    Function Delete(ByVal s As Integer) As Boolean
        openConnection()
        getDelCmd()
        Try
            With DelCmd
                .Parameters(cID).Value = s
                .ExecuteNonQuery()
            End With
            Return True
        Catch ex As Exception
            MessageBox.Show(ex.Message)
            Return False
        End Try
    End Function


    '从数据库个按条件进行查询某个供应商实价体
    Function Find(ByVal pSite As String) As ArrayList      ' MTarecls
        openConnection()
        getFndCmd()

        With FndCmd
            .Parameters(cSite).Value = pSite
            '.Parameters(cTravelNo).Value = pTravelNo
            '.Parameters(cLOnes).Value = pLOnes
        End With
        Dim dr As OleDbDataReader = FndCmd.ExecuteReader
        Dim al As New ArrayList
        Dim c As MTarecls
        Dim i As Integer
        Try
            While dr.Read
                c = New MTarecls
                c.ID = dr(cID)
                c.Site = dr(cSite)
                c.Worker = dr(cOperator)
                c.Matter = dr(cMatter)
                c.NowDate = dr(cNowDate)
                c.Notes = dr(cNotes)
                i = i + 1
                al.Add(c)
            End While
            If i >= 1 Then
                Return al
            Else
                Return Nothing
            End If
        Catch ex As Exception
            MessageBox.Show(ex.Message)
            Return Nothing
        Finally
            dr.Close()
        End Try
    End Function

    Function Find(ByVal sID As Integer) As MTarecls     '按序号查询只有唯一值
        openConnection()
        getSelCmd()

        With SelCmd
            .Parameters(cID).Value = sID
            '.Parameters(C_SHIP).Value = s.Ship
            '.Parameters(C_LUSHU).Value = s.LuShu
            '.Parameters(C_STATION).Value = s.Station
        End With
        Dim dr As OleDbDataReader = SelCmd.ExecuteReader
        Dim al As New ArrayList
        Dim c As MTarecls
        Dim i As Integer
        Try
            While dr.Read
                c = New MTarecls
                c.ID = dr(cID)
                c.Site = dr(cSite)
                c.Worker = dr(cOperator)
                c.Matter = dr(cMatter)
                c.NowDate = dr(cNowDate)
                c.Notes = dr(cNotes)
                i = i + 1
                al.Add(c)
            End While

            If i >= 1 Then
                Return c
            Else
                Return Nothing
            End If

        Catch ex As Exception
            MessageBox.Show(ex.Message)
            Return Nothing
        Finally
            dr.Close()
        End Try

    End Function

End Class

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读