form1.vb

来自「是一个工资的管理系统 利用的是VB.NET和sql2000来完成的」· VB 代码 · 共 708 行 · 第 1/3 页

VB
708
字号
        Me.SqlUpdateCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@姓名", System.Data.SqlDbType.VarChar, 16, "姓名"))
        Me.SqlUpdateCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@性别", System.Data.SqlDbType.VarChar, 4, "性别"))
        Me.SqlUpdateCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@基本工资", System.Data.SqlDbType.Float, 8, "基本工资"))
        Me.SqlUpdateCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@加班费", System.Data.SqlDbType.Float, 8, "加班费"))
        Me.SqlUpdateCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@奖金", System.Data.SqlDbType.Float, 8, "奖金"))
        Me.SqlUpdateCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@津贴", System.Data.SqlDbType.Float, 8, "津贴"))
        Me.SqlUpdateCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@备注", System.Data.SqlDbType.VarChar, 50, "备注"))
        Me.SqlUpdateCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_共号", System.Data.SqlDbType.Decimal, 9, System.Data.ParameterDirection.Input, False, CType(18, Byte), CType(0, Byte), "共号", System.Data.DataRowVersion.Original, Nothing))
        Me.SqlUpdateCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_加班费", System.Data.SqlDbType.Float, 8, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "加班费", System.Data.DataRowVersion.Original, Nothing))
        Me.SqlUpdateCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_基本工资", System.Data.SqlDbType.Float, 8, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "基本工资", System.Data.DataRowVersion.Original, Nothing))
        Me.SqlUpdateCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_备注", System.Data.SqlDbType.VarChar, 50, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "备注", System.Data.DataRowVersion.Original, Nothing))
        Me.SqlUpdateCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_奖金", System.Data.SqlDbType.Float, 8, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "奖金", System.Data.DataRowVersion.Original, Nothing))
        Me.SqlUpdateCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_姓名", System.Data.SqlDbType.VarChar, 16, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "姓名", System.Data.DataRowVersion.Original, Nothing))
        Me.SqlUpdateCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_性别", System.Data.SqlDbType.VarChar, 4, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "性别", System.Data.DataRowVersion.Original, Nothing))
        Me.SqlUpdateCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_津贴", System.Data.SqlDbType.Float, 8, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "津贴", System.Data.DataRowVersion.Original, Nothing))
        '
        'Panel1
        '
        Me.Panel1.Anchor = System.Windows.Forms.AnchorStyles.None
        Me.Panel1.Controls.Add(Me.Label1)
        Me.Panel1.Controls.Add(Me.Label2)
        Me.Panel1.Controls.Add(Me.TextBox1)
        Me.Panel1.Controls.Add(Me.TextBox2)
        Me.Panel1.Controls.Add(Me.Label3)
        Me.Panel1.Controls.Add(Me.TextBox3)
        Me.Panel1.Controls.Add(Me.Label4)
        Me.Panel1.Controls.Add(Me.TextBox4)
        Me.Panel1.Controls.Add(Me.Label9)
        Me.Panel1.Controls.Add(Me.TextBox9)
        Me.Panel1.Controls.Add(Me.Label5)
        Me.Panel1.Controls.Add(Me.Label6)
        Me.Panel1.Controls.Add(Me.Label7)
        Me.Panel1.Controls.Add(Me.Label8)
        Me.Panel1.Controls.Add(Me.TextBox8)
        Me.Panel1.Controls.Add(Me.TextBox7)
        Me.Panel1.Controls.Add(Me.TextBox5)
        Me.Panel1.Controls.Add(Me.TextBox6)
        Me.Panel1.Controls.Add(Me.BtTop)
        Me.Panel1.Controls.Add(Me.Btprev)
        Me.Panel1.Controls.Add(Me.Label10)
        Me.Panel1.Controls.Add(Me.BtUpdate)
        Me.Panel1.Controls.Add(Me.BtView)
        Me.Panel1.Controls.Add(Me.Btadd)
        Me.Panel1.Controls.Add(Me.Btcanel)
        Me.Panel1.Controls.Add(Me.Txtfind)
        Me.Panel1.Controls.Add(Me.Btfind)
        Me.Panel1.Controls.Add(Me.Txtlocation)
        Me.Panel1.Controls.Add(Me.Btnext)
        Me.Panel1.Controls.Add(Me.Btlast)
        Me.Panel1.Controls.Add(Me.Btdelete)
        Me.Panel1.Controls.Add(Me.BtExit)
        Me.Panel1.Location = New System.Drawing.Point(0, 232)
        Me.Panel1.Name = "Panel1"
        Me.Panel1.Size = New System.Drawing.Size(680, 208)
        Me.Panel1.TabIndex = 33
        '
        'Form1
        '
        Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)
        Me.ClientSize = New System.Drawing.Size(688, 445)
        Me.Controls.Add(Me.Panel1)
        Me.Controls.Add(Me.DataGrid1)
        Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
        Me.Name = "Form1"
        Me.Text = "工资管理系统"
        Me.TransparencyKey = System.Drawing.Color.FromArgb(CType(0, Byte), CType(192, Byte), CType(192, Byte))
        CType(Me.DataGrid1, System.ComponentModel.ISupportInitialize).EndInit()
        CType(Me.Ds1, System.ComponentModel.ISupportInitialize).EndInit()
        Me.Panel1.ResumeLayout(False)
        Me.ResumeLayout(False)

    End Sub

#End Region

    Private Sub TxtlocationChange()
        Me.Txtlocation.Text = (((Me.BindingContext(Ds1, "工资表").Position + 1).ToString + "的") + Me.BindingContext(Ds1, "工资表").Count.ToString)

    End Sub
    Private Sub btenabled(ByVal bool As Boolean)
        BtView.Enabled = bool
        Btdelete.Enabled = bool
        BtUpdate.Enabled = bool
        Btprev.Enabled = bool
        Btlast.Enabled = bool
        Btnext.Enabled = bool
        BtTop.Enabled = bool
        Btfind.Enabled = bool   '  确定其他的控件不可用’
    End Sub

    Private Sub BtView_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtView.Click
        Try
            SqlDataAdapter1.SelectCommand.CommandText = "select * from 工资表" '从工资表中查询’
            Ds1.Clear()   '防止前面的查询数据还在数据集中’
            SqlDataAdapter1.Fill(Ds1)   '将刚刚查询的数据放入数据集中,用.fill(数据集名称)’
            Me.DataGrid1.Select(DataGrid1.CurrentRowIndex)  'select是选定一行,DataGrid1.CurrentRowIndex是选择当前的活动行’
            Me.TxtlocationChange()  '在txtlocationchange中显示活动行的位置’
        Catch ex As Exception
            MsgBox(ex.Message)  '如果出错就提示出错的对话框’   
            '利用try    catch  ex as exception     end try   意思是如果try 后面的出错就执行catch后面的’
        End Try
    End Sub

    Private Sub Btadd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btadd.Click
        Try
            If Btadd.Text = "添加" Then  '如果点了添加按钮’
                Me.BindingContext(Ds1, "工资表").AddNew()  '就在工资表中添加一个新行’
                Btadd.Text = "确定"  '将他的text属性改为确定’
                Me.btenabled(False) '将其他的属性改为不可用,利用前面定义的bool型’
            Else
                If Btadd.Text <> "确定" Then  '当再次点击确定的时候退出’
                    Exit Sub
                End If
                Me.BindingContext(Ds1, "工资表").EndCurrentEdit() '将工资表中的数据返回数据集’
                SqlDataAdapter1.Update(Ds1.工资表) '.update 是对数据集的更新’
                MsgBox("添加成功!") '然后调用msgbox显示“添加成功”’
                Btadd.Text = "添加" '在将btadd.text的内容改为添加’
                Me.btenabled(True) '修改其它的控件按钮为可用’
                Me.TxtlocationChange() '调用TxtlocationChange()显示当前活动的行’
                Me.DataGrid1.Select(DataGrid1.CurrentRowIndex) '用反色显示当前的活动行’
            End If
        Catch ex As Exception
            MsgBox(ex.Message) '出错就调用magbox进行显示’
        End Try
    End Sub

    Private Sub Btdelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btdelete.Click
        Try
            If MsgBox("真的要删除此记录?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then '如果在调用的对话筐中点机的是yes就将当前行进行删除’
                Ds1.工资表.Rows(Me.BindingContext(Ds1, "工资表").Position).Delete()
                SqlDataAdapter1.Update(Ds1) '在删除过后对数据集进行更新
                Me.TxtlocationChange() '调用TxtlocationChange()显示当前活动的行’
                Me.DataGrid1.Select(DataGrid1.CurrentRowIndex) '用反色显示当前的活动行’
            End If
        Catch ex As Exception
            MsgBox(ex.Message) '出错就调用magbox进行显示
        End Try
    End Sub

    Private Sub BtUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtUpdate.Click
        Try
            Me.BindingContext(Ds1, "工资表").EndCurrentEdit() '将修改的数据返回数据集
            If Ds1.HasChanges(DataRowState.Modified) Then '调用的.haschanges来判断是否对数据集进行了修改
                SqlDataAdapter1.Update(Ds1) '如果修改了就对数据库进行更新
                MsgBox("更新成功!") '调用msgbox显示更新成功’
            End If

        Catch
        End Try
    End Sub

    Private Sub Btcanel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btcanel.Click
        Me.BindingContext(Ds1.工资表).CancelCurrentEdit() '在添加未完成的时候取消添加
        Btadd.Text = "添加"  '将btadd的text 属性又改为  添加
        Me.btenabled(True)  '将其他的控件改为能用
    End Sub

    Private Sub BtExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtExit.Click
        Application.Exit()  '当点击的时候就退出
    End Sub

    Private Sub Btfind_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btfind.Click
        Try
            If Trim(Txtfind.Text) = "" Then '判断txtfind.text是否为空,为空的话就退出不执行
                Exit Sub
            End If
            SqlDataAdapter1.SelectCommand.CommandText = "select * from 工资表 where 共号 like '" & Txtfind.Text & "'" '设置查询的语句
            Ds1.Clear()   '将数据集清空
            SqlDataAdapter1.Fill(Ds1) '将刚刚查询的数据填充到数据集中
            Me.DataGrid1.Select(DataGrid1.CurrentRowIndex) '‘将当前活动行进行反色显示
            Me.TxtlocationChange() '在TxtlocationChange()中显示当前的活动行
        Catch
        End Try
    End Sub

    Private Sub Btnext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btnext.Click
        If Me.BindingContext(Ds1, "工资表").Count = 0 Then '先判断工资表中是否有数据,无就退出
            Exit Sub
        End If
        Dim i As Integer  '设置 一个变量I
        i = Me.BindingContext(Ds1.工资表).Count - 1 'I为总行数-1,由于在这里是从0开始的,取的总行数
        If Me.BindingContext(Ds1.工资表).Position < i Then  '确定是否是最后一行
            Me.BindingContext(Ds1.工资表).Position += 1 '不是的话  在单击的时候就将当前行加1
            Me.TxtlocationChange() '在TxtlocationChange()中显示当前的活动行
        End If
        DataGrid1.UnSelect(DataGrid1.CurrentRowIndex - 1) '将前一行取消反色显示
        Me.DataGrid1.Select(DataGrid1.CurrentRowIndex) '将当前一行反色显示
    End Sub

    Private Sub Btlast_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btlast.Click
        If Me.BindingContext(Ds1.工资表).Count = 0 Then '首先判断表中是否有数据  无就不执行后面的
            Exit Sub
        End If
        Me.DataGrid1.UnSelect(DataGrid1.CurrentRowIndex) '取消对当前行的反色显示
        Me.BindingContext(Ds1.工资表).Position = Me.BindingContext(Ds1.工资表).Count - 1 '将当前行设置为数据集中工资表的最后一行
        Me.TxtlocationChange() '调用TxtlocationChange()显示
        Me.DataGrid1.Select(DataGrid1.CurrentRowIndex) '将当前行反色显示
        Exit Sub
    End Sub

    Private Sub Btprev_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btprev.Click
        If Me.BindingContext(Ds1.工资表).Count = 0 Then '首先判断表中是否有数据  无就不执行后面的
            Exit Sub
        End If
        If Me.BindingContext(Ds1, "工资表").Position > 0 Then '判断当前行是否是第一行
            Me.BindingContext(Ds1.工资表).Position = (Me.BindingContext(Ds1.工资表).Position - 1) '将当前行进行修改
            Me.TxtlocationChange() '对修改后的行在Txtlocation中显示
        End If
        DataGrid1.UnSelect(DataGrid1.CurrentRowIndex + 1) '对当前行的前一行取消反色显示
        Me.DataGrid1.Select(DataGrid1.CurrentRowIndex) '对当前行反色显示
    End Sub

    Private Sub BtTop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtTop.Click
        If Me.BindingContext(Ds1.工资表).Count = 0 Then
            Exit Sub
        End If
        Me.DataGrid1.UnSelect(DataGrid1.CurrentRowIndex)
        Me.BindingContext(Ds1.工资表).Position = 0
        Me.TxtlocationChange()
        Me.DataGrid1.Select(DataGrid1.CurrentRowIndex)
    End Sub

    Private Sub DataGrid1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles DataGrid1.MouseUp
        Try
            DataGrid1.Select(DataGrid1.CurrentRowIndex) '反色显示取得的当前行的
            Me.TxtlocationChange()
        Catch
            If Err.Number = 9 Then
                MsgBox("表中没有数据")
            End If
        End Try
    End Sub

   
End Class

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?