⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 auditiongobject.aspx.vb

📁 一个很不错的实验室管理系统,用vb+sql编写,功能强大,界面美观
💻 VB
字号:
Imports System
Imports System.Data
Imports System.Data.SqlClient
Public Class AuditiongObject
    Inherits clsDataAccess
   
    Protected WithEvents pnlButton As System.Web.UI.WebControls.Panel
    Protected WithEvents tblTestObj As System.Web.UI.HtmlControls.HtmlTable
    Protected WithEvents btnPermit As System.Web.UI.WebControls.Button

#Region " Web 窗体设计器生成的代码 "

    '该调用是 Web 窗体设计器所必需的。
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

    End Sub

    Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
        'CODEGEN: 此方法调用是 Web 窗体设计器所必需的
        '不要使用代码编辑器修改它。
        InitializeComponent()
    End Sub

#End Region

    Public intRowsNum As Int16 '表格行数
    Public objCB As CheckBox
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim i As Int16      
        Dim j, k As Int16       
        '取得标准编号和用户类型
        Session("standardserial") = Request.Params("standardserial")        
        '取得该标准编号的实验目的
        PubStrSql = "select * from TestObj where StandardSerial='" _
        & Session("standardserial") & "' "
        PubDataAdapter.SelectCommand.CommandText = PubStrSql
        PubDataAdapter.Fill(PubDataSet, "TestObj")
        Dim dtTable As New DataTable()

        dtTable = PubDataSet.Tables("TestObj")

        intRowsNum = PubDataSet.Tables("TestObj").Rows.Count

        Dim r As New HtmlTableRow()
        Dim c As HtmlTableCell

        For j = 0 To 2
            c = New HtmlTableCell()
            If j = 2 Then c.RowSpan = FormatNumber(intRowsNum / 2, 0)
            c.Controls.Add(New LiteralControl())
            r.Cells.Add(c)
        Next
        tblTestObj.Rows.Add(r)

        For i = 0 To FormatNumber(intRowsNum / 2, 0) - 2
            r = New HtmlTableRow()
            For j = 0 To 1
                c = New HtmlTableCell()
                c.Controls.Add(New LiteralControl())
                r.Cells.Add(c)
            Next
            tblTestObj.Rows.Add(r)
        Next

        ''删除数据库中与该标准编号对应的审核数据
        If Not IsPostBack Then
            PubStrSql = "delete from CheckBoxInfor where StandardSerial='" _
            & Session("standardserial") & "'"
            PubSqlCmd.CommandText = PubStrSql
            PubSqlCmd.ExecuteNonQuery()
        End If
        k = 0
        For i = 1 To FormatNumber(intRowsNum / 2, 0)
            For j = 0 To 1
                objCB = New CheckBox()
                If k = intRowsNum Then Exit For
                objCB.ID = "objCB" & (k)
                objCB.Text = dtTable.Rows(k).Item("Testobject")
                objCB.AutoPostBack = True
                If dtTable.Rows(k).Item("Checked") = 1 Then objCB.Checked = True
                k = k + 1
                tblTestObj.Rows(i).Cells(j).Controls.Add(objCB)
                AddHandler objCB.CheckedChanged, AddressOf EventHandler
                ''将该checkbox的state 存入数据库中的表CheckBoxInfor中
                If Not IsPostBack Then
                    PubStrSql = "insert into CheckBoxInfor values('" _
                    & Session("standardserial") & "'," & k - 1 & "," _
                    & dtTable.Rows(k - 1).Item("Checked") & ")"
                    PubSqlCmd.CommandText = PubStrSql
                    PubSqlCmd.ExecuteNonQuery()
                End If
            Next
        Next

        r = New HtmlTableRow()
        c = New HtmlTableCell()
        c.ColSpan = 3
        c.Align = "center"
        c.Controls.Add(New LiteralControl())
        r.Cells.Add(c)
        tblTestObj.Rows.Add(r)
        tblTestObj.Rows(tblTestObj.Rows.Count - 1).Cells(0).Controls.Add(btnPermit)       
    End Sub

    Sub EventHandler(ByVal sender As Object, ByVal e As System.EventArgs)
        '定义Checkbox的事件处理程序
        Dim TestObjs As String
        Dim i, j, NuRows, k, n As Int16
        Dim checkboxValue(intRowsNum) As Boolean
        Dim checkboxText(intRowsNum) As String        
        Dim r As HtmlTableRow
        Dim c As HtmlTableCell                
        Dim dtTable As DataTable
        Dim tblDetail As New HtmlTable()
        Dim intCheckedBoxIndex As Int16 '记录被选中的checkbox的标号
      

        For i = 0 To intRowsNum - 1
            objCB = CType(tblTestObj.Controls(1).FindControl("objCB" & CStr(i)), CheckBox)
            checkboxValue(i) = objCB.Checked
            checkboxText(i) = objCB.Text
        Next
        '目的:实现判断那个checkbox被选中
        '
        Dim OldCheckBoxState(intRowsNum) As Int16 '存放checkbox的状态
        Dim NewCheckBoxState(intRowsNum) As Int16

        PubStrSql = "select * from CheckBoxInfor where StandardSerial='" _
        & Session("standardserial") & "' order by CheckBoxNum"
        PubDataAdapter.SelectCommand.CommandText = PubStrSql        
        PubDataAdapter.Fill(PubDataSet, "CheckBoxInfor")
        '将CheckBoxInfor表中的内容读入数组
        '最新的CheckBox的State信息存放在数组OldCheckBoxState中
        For i = 0 To intRowsNum - 1
            OldCheckBoxState(i) = PubDataSet.Tables("CheckBoxInfor").Rows(i)("CheckBoxState")
            If checkboxValue(i) = True Then
                NewCheckBoxState(i) = 1
            Else
                NewCheckBoxState(i) = 0
            End If
        Next

        '将两个数组作比较,找出哪个checkbox被选中
        For i = 0 To intRowsNum - 1
            If OldCheckBoxState(i) <> NewCheckBoxState(i) Then
                intCheckedBoxIndex = i
                Exit For
            End If
        Next
        '将最新的checkBox的State信息写入表CheckBoxInfor
        PubStrSql = "update CheckBoxInfor set CheckBoxState=" _
        & NewCheckBoxState(intCheckedBoxIndex) & " where StandardSerial='" _
        & Session("standardserial") & "' and CheckBoxNum=" & intCheckedBoxIndex
        PubSqlCmd.CommandText = PubStrSql
        PubSqlCmd.ExecuteNonQuery()
        '清空dataset中的内容
        PubDataSet.Tables("CheckBoxInfor").Clear()
        tblTestObj.Rows(1).Cells(2).InnerText = ""

        tblDetail.Border = 0
        tblDetail.Align = "center"
        tblTestObj.Rows(1).Cells(2).Controls.Add(tblDetail)


        k = 0
        i = intCheckedBoxIndex
        TestObjs = checkboxText(i)
        PubStrSql = "select distinct Project from TestProject where TestObj='" _
        & TestObjs & "' and StandardSerial='" & Trim(Session("standardserial")) & "'"
        PubDataAdapter.SelectCommand.CommandText = PubStrSql
        PubDataAdapter.Fill(PubDataSet, "Project")
        dtTable = New DataTable()
        dtTable = PubDataSet.Tables("Project")
        NuRows = dtTable.Rows.Count
        r = New HtmlTableRow()
        c = New HtmlTableCell()
        c.Controls.Add(New LiteralControl())
        r.Cells.Add(c)
        tblDetail.Rows.Add(r)
        tblDetail.Rows(k).Cells(0).InnerText = "实验目的" & TestObjs & "的实验项目是:"
        For j = 1 To NuRows
            r = New HtmlTableRow()
            c = New HtmlTableCell()
            c.Controls.Add(New LiteralControl())
            r.Cells.Add(c)
            tblDetail.Rows.Add(r)
            tblDetail.Rows(j + k).Cells(0).InnerText = dtTable.Rows(j - 1).Item("Project")
        Next
        k = k + NuRows + 1
    End Sub

    Private Sub btnPermit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPermit.Click
        Dim i As Int16
        Dim TestObjs As String
        Dim checkboxValue(intRowsNum) As Boolean
        Dim checkboxText(intRowsNum) As String
        For i = 0 To intRowsNum - 1
            objCB = CType(tblTestObj.Controls(1).FindControl("objCB" & CStr(i)), CheckBox)
            checkboxValue(i) = objCB.Checked
            checkboxText(i) = objCB.Text
        Next
        For i = 0 To intRowsNum - 1
            TestObjs = checkboxText(i)
            If checkboxValue(i) = True Then
                PubStrSql = "select * from TestObj where TestObject='" & TestObjs _
                & "' and StandardSerial='" & Session("standardserial") & "'"
                PubDataAdapter.SelectCommand.CommandText = PubStrSql
                PubDataAdapter.Fill(PubDataSet, "TestObj")                
                PubDataSet.Tables("TestObj").Rows(0).Item("Checked") = 1
                Dim objAutoGen As New SqlCommandBuilder(PubDataAdapter)
                PubDataAdapter.Update(PubDataSet, "TestObj")
            Else
                PubStrSql = "select * from TestObj where TestObject='" & TestObjs _
                & "' and StandardSerial='" & Session("standardserial") & "'"
                PubDataAdapter.SelectCommand.CommandText = PubStrSql
                PubDataAdapter.Fill(PubDataSet, "TestObj")
                PubDataSet.Tables("TestObj").Rows(0).Item("Checked") = 0
                Dim objAutoGen As New SqlCommandBuilder(PubDataAdapter)
                PubDataAdapter.Update(PubDataSet, "TestObj")
            End If
        Next
    End Sub


End Class

⌨️ 快捷键说明

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