AJAX多查询 [英] AJAX Multi QUERY

查看:48
本文介绍了AJAX多查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,

我需要你的帮助

我使用像hovermenuextender这样的启用了ajax的表单ajax控制工具包开发了一个asp.net应用程序.

一切都很好,直到我尝试仅用一个oledb.connection命令和读取器使用oledb进行许多SELECT查询.

从查询中获得所有结果后,我的网站就不再支持Ajax.

计时器延迟约30,我将计时器放在主页上.当我打开另一个不使用大型查询过程的页面时,计时器工作正常.
我总是在执行读取器后立即关闭datareader.我不知道为什么在显示所有数据后为什么会发生这种情况
当我在任务管理器上检查sqlserver.exe时,发现它使用了大约50%的CPU使用率,并且没有减少.

希望有人能给我一些建议,我会非常感激的.
谢谢.
亲切的问候.


岘港普拉科索


这里的代码

Hello Guys,

I need you help

I developed an asp.net application using ajax-enabled form ajax control toolkit like hovermenuextender.

Everything was fine until I tried to make many SELECT Query with oledb with only one oledb.connection Command and reader.

Once I get all the results from my query then my website is not ajax-enabled anymore.

The Timer delayed like 30, I put the timer on master page. The timer worked fine when I opened another page that doesn''t use large query process.
I always close datareader right after reader has been executed. I wonder why this may occur when all the data has been displayed
when I check to sqlserver.exe on task manager and see that it uses around 50% of CPU usage, and doesn''t decrease.

I hope somebody could give me some advice, I will appreciate it so much
Thanks.
Kindly Regard.


Danang Prakoso


HERE''s The Code

Imports System.Data
Partial Class UnpackingProgress
    Inherits System.Web.UI.Page
    Public dbCon As New OleDb.OleDbConnection(ConfigurationManager.ConnectionStrings("ILog").ConnectionString)
    Public dbCommand As New OleDb.OleDbCommand
    Public dbReader As OleDb.OleDbDataReader
    Public lstPL As List(Of ProductionPlan)
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        dbCommand.Connection = dbCon
        dbCon.Open()
        UpdateData()
        dbCon.Close()
        dbCon.Dispose()
        dbCommand.Dispose()
        UpdateDisplay()
        FinalizeData()
    End Sub
    Protected Sub Page_Unload(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Unload
        
    End Sub
    Private Sub FinalizeData()
        Dim a, b, c As Integer
        For a = 0 To lstPL.Count - 1
            For b = 0 To lstPL(a).Stations.Count - 1
                For c = 0 To lstPL(a).Stations(b).Trolleys.Count - 1
                    lstPL(a).Stations(b).Trolleys(c).FinalizeMe()
                Next
                lstPL(a).Stations(b).FinalizeMe()
                lstPL(a).Stations(b).Trolleys.Clear()
            Next
            lstPL(a).FinalizeMe()
            lstPL(a).Stations.Clear()
        Next
        lstPL.Clear()
    End Sub
    Private Sub UpdateData()
        lstPL = New List(Of ProductionPlan)
        Dim pl As ProductionPlan
        dbCommand.CommandText = "SELECT DISTINCT TOP (4) ID, Consignment, Lot, Varian, [Type] FROM Prod_plan  WHERE status = 1 ORDER BY ID"
        dbReader = dbCommand.ExecuteReader
        If dbReader.HasRows Then
            While dbReader.Read
                pl = New ProductionPlan
                pl.dbCommand = dbCommand
                pl.dbReader = dbReader
                pl.pid = dbReader.GetInt32(0)
                pl.cons = dbReader.GetString(1)
                pl.lot = dbReader.GetString(2)
                pl.varian = dbReader.GetString(3)
                pl.type = dbReader.GetString(4).Substring(0, 1)
                lstPL.Add(pl)
            End While
        End If
        dbReader.Close()

        Dim i As Integer
        For i = 0 To lstPL.Count - 1
            lstPL(i).GetStations()
        Next

        If lstPL.Count = 0 Then
            pl = New ProductionPlan
            lstPL.Add(pl)
            lstPL.Add(pl)
            lstPL.Add(pl)
            lstPL.Add(pl)
        ElseIf lstPL.Count = 1 Then
            pl = New ProductionPlan
            lstPL.Add(pl)
            lstPL.Add(pl)
            lstPL.Add(pl)
        ElseIf lstPL.Count = 2 Then
            pl = New ProductionPlan
            lstPL.Add(pl)
            lstPL.Add(pl)
        ElseIf lstPL.Count = 3 Then
            pl = New ProductionPlan
            lstPL.Add(pl)
        End If
    End Sub
    Private Function CalculateData(ByVal row As Integer, ByVal pl As ProductionPlan) As String
        If pl.pid = 0 Then
            Return "-"
        Else
            Select Case row
                Case 1
                    Return Math.Round((pl.Stations(3).completeTrolley + pl.Stations(1).completeTrolley + pl.Stations(35).completeTrolley) / (pl.Stations(3).totalTrolley + pl.Stations(1).totalTrolley + pl.Stations(35).totalTrolley) * 100) & "%"
                Case 2
                    Return Math.Round((pl.Stations(16).completeTrolley) / (pl.Stations(16).totalTrolley) * 100) & "%"
                Case 3
                    Return Math.Round((pl.Stations(17).completeTrolley) / (pl.Stations(17).totalTrolley) * 100) & "%"
                Case 4
                    Return Math.Round((pl.Stations(18).completeTrolley + pl.Stations(19).completeTrolley + pl.Stations(5).completeTrolley) / (pl.Stations(18).totalTrolley + pl.Stations(19).totalTrolley + pl.Stations(5).totalTrolley) * 100) & "%"
                Case 5
                    Return Math.Round((pl.Stations(20).completeTrolley + pl.Stations(21).completeTrolley) / (pl.Stations(20).totalTrolley + pl.Stations(21).totalTrolley) * 100) & "%"
                Case 6
                    Return Math.Round((pl.Stations(22).completeTrolley + pl.Stations(23).completeTrolley) / (pl.Stations(22).totalTrolley + pl.Stations(23).totalTrolley) * 100) & "%"
                Case 7
                    Return Math.Round((pl.Stations(24).completeTrolley) / (pl.Stations(24).totalTrolley) * 100) & "%"
                Case 8
                    Return Math.Round((pl.Stations(25).completeTrolley + pl.Stations(4).completeTrolley) / (pl.Stations(25).totalTrolley + pl.Stations(4).totalTrolley) * 100) & "%"
                Case 9
                    Return Math.Round((pl.Stations(26).completeTrolley + pl.Stations(27).completeTrolley + pl.Stations(6).completeTrolley + pl.Stations(7).completeTrolley + pl.Stations(8).completeTrolley + pl.Stations(9).completeTrolley) / (pl.Stations(26).totalTrolley + pl.Stations(27).totalTrolley + pl.Stations(6).totalTrolley + pl.Stations(7).totalTrolley + pl.Stations(8).totalTrolley + pl.Stations(9).totalTrolley) * 100) & "%"
                Case 10
                    Return Math.Round((pl.Stations(28).completeTrolley) / (pl.Stations(28).totalTrolley) * 100) & "%"
                Case 11
                    Return Math.Round((pl.Stations(29).completeTrolley + pl.Stations(11).completeTrolley + pl.Stations(14).completeTrolley) / (pl.Stations(29).totalTrolley + pl.Stations(11).totalTrolley + pl.Stations(14).totalTrolley) * 100) & "%"
                Case 12
                    Return Math.Round((pl.Stations(30).completeTrolley + pl.Stations(10).completeTrolley) / (pl.Stations(30).totalTrolley + pl.Stations(10).totalTrolley) * 100) & "%"
                Case 13
                    Return Math.Round((pl.Stations(31).completeTrolley + pl.Stations(12).completeTrolley) / (pl.Stations(31).totalTrolley + pl.Stations(12).totalTrolley) * 100) & "%"
                Case 14
                    Return Math.Round((pl.Stations(32).completeTrolley + pl.Stations(13).completeTrolley + pl.Stations(15).completeTrolley) / (pl.Stations(32).totalTrolley + pl.Stations(13).totalTrolley + pl.Stations(15).totalTrolley) * 100) & "%"
                Case 15
                    Return Math.Round((pl.Stations(33).completeTrolley + pl.Stations(34).completeTrolley) / (pl.Stations(33).totalTrolley + pl.Stations(34).totalTrolley) * 100) & "%"
                Case 16
                    Return Math.Round((pl.Stations(2).completeTrolley + pl.Stations(0).completeTrolley) / (pl.Stations(2).totalTrolley + pl.Stations(0).totalTrolley) * 100) & "%"
                Case 17
                    Dim i, TCL, TTL As Integer
                    For i = 0 To pl.Stations.Count - 1
                        TCL += pl.Stations(i).completeTrolley
                        TTL += pl.Stations(i).totalTrolley
                    Next
                    Return Math.Round((TCL / TTL) * 100) & "%"
                Case Else
                    Return "Error"
            End Select
        End If
    End Function
    Private Function GetLongestDate(ByVal Dates As List(Of Date)) As Date
        Dim i As Integer
        Dim result As Date
        result = Dates(0)
        For i = 1 To Dates.Count - 1
            If result < Dates(i) Then
                result = Dates(i)
            End If
        Next
        Return result
    End Function
    Private Function CalculateDate(ByVal row As Integer, ByVal pl As ProductionPlan) As String
        Dim dates As List(Of Date)
        If pl.pid = 0 Then
            Return "-"
        Else
            Select Case row
                Case 1
                    dates = New List(Of Date)
                    dates.Add(pl.Stations(3).lastTimeUpdated)
                    dates.Add(pl.Stations(1).lastTimeUpdated)
                    dates.Add(pl.Stations(35).lastTimeUpdated)
                    Return GetLongestDate(dates)
                Case 2
                    Return pl.Stations(16).lastTimeUpdated
                Case 3
                    Return pl.Stations(17).lastTimeUpdated
                Case 4
                    dates = New List(Of Date)
                    dates.Add(pl.Stations(18).lastTimeUpdated)
                    dates.Add(pl.Stations(19).lastTimeUpdated)
                    dates.Add(pl.Stations(5).lastTimeUpdated)
                    Return GetLongestDate(dates)
                Case 5
                    dates = New List(Of Date)
                    dates.Add(pl.Stations(20).lastTimeUpdated)
                    dates.Add(pl.Stations(21).lastTimeUpdated)
                    Return GetLongestDate(dates)
                Case 6
                    dates = New List(Of Date)
                    dates.Add(pl.Stations(22).lastTimeUpdated)
                    dates.Add(pl.Stations(23).lastTimeUpdated)
                    Return GetLongestDate(dates)
                Case 7
                    Return pl.Stations(24).lastTimeUpdated
                Case 8
                    dates = New List(Of Date)
                    dates.Add(pl.Stations(25).lastTimeUpdated)
                    dates.Add(pl.Stations(4).lastTimeUpdated)
                    Return GetLongestDate(dates)
                Case 9
                    dates = New List(Of Date)
                    dates.Add(pl.Stations(26).lastTimeUpdated)
                    dates.Add(pl.Stations(27).lastTimeUpdated)
                    dates.Add(pl.Stations(6).lastTimeUpdated)
                    dates.Add(pl.Stations(7).lastTimeUpdated)
                    dates.Add(pl.Stations(8).lastTimeUpdated)
                    dates.Add(pl.Stations(9).lastTimeUpdated)
                    Return GetLongestDate(dates)
                Case 10
                    Return pl.Stations(28).lastTimeUpdated
                Case 11
                    dates = New List(Of Date)
                    dates.Add(pl.Stations(29).lastTimeUpdated)
                    dates.Add(pl.Stations(11).lastTimeUpdated)
                    dates.Add(pl.Stations(14).lastTimeUpdated)
                    Return GetLongestDate(dates)
                Case 12
                    dates = New List(Of Date)
                    dates.Add(pl.Stations(30).lastTimeUpdated)
                    dates.Add(pl.Stations(10).lastTimeUpdated)
                    Return GetLongestDate(dates)
                Case 13
                    dates = New List(Of Date)
                    dates.Add(pl.Stations(31).lastTimeUpdated)
                    dates.Add(pl.Stations(12).lastTimeUpdated)
                    Return GetLongestDate(dates)
                Case 14
                    dates = New List(Of Date)
                    dates.Add(pl.Stations(32).lastTimeUpdated)
                    dates.Add(pl.Stations(13).lastTimeUpdated)
                    dates.Add(pl.Stations(15).lastTimeUpdated)
                    Return GetLongestDate(dates)
                Case 15
                    dates = New List(Of Date)
                    dates.Add(pl.Stations(33).lastTimeUpdated)
                    dates.Add(pl.Stations(34).lastTimeUpdated)
                    Return GetLongestDate(dates)
                Case 16
                    dates = New List(Of Date)
                    dates.Add(pl.Stations(2).lastTimeUpdated)
                    dates.Add(pl.Stations(0).lastTimeUpdated)
                    Return GetLongestDate(dates)
                Case Else
                    Return "Error"
            End Select
        End If
    End Function
    Private Sub UpdateDisplay()

        lblVar1.Text = lstPL(0).varian
        lblVar2.Text = lstPL(1).varian
        lblVar3.Text = lstPL(2).varian
        lblVar4.Text = lstPL(3).varian

        lblConsLot1.Text = lstPL(0).cons & "&nbsp; Lot : " & Integer.Parse(lstPL(0).lot)
        lblConsLot2.Text = lstPL(1).cons & "&nbsp; Lot : " & Integer.Parse(lstPL(1).lot)
        lblConsLot3.Text = lstPL(2).cons & "&nbsp; Lot : " & Integer.Parse(lstPL(2).lot)
        lblConsLot4.Text = lstPL(3).cons & "&nbsp; Lot : " & Integer.Parse(lstPL(3).lot)

        ''Prouction Plan 1
        lblP1_1.Text = CalculateData(1, lstPL(0))
        lblP2_1.Text = CalculateData(2, lstPL(0))
        lblP3_1.Text = CalculateData(3, lstPL(0))
        lblP4_1.Text = CalculateData(4, lstPL(0))
        lblP5_1.Text = CalculateData(5, lstPL(0))
        lblP6_1.Text = CalculateData(6, lstPL(0))
        lblP7_1.Text = CalculateData(7, lstPL(0))
        lblP8_1.Text = CalculateData(8, lstPL(0))
        lblP9_1.Text = CalculateData(9, lstPL(0))
        lblP10_1.Text = CalculateData(10, lstPL(0))
        lblP11_1.Text = CalculateData(11, lstPL(0))
        lblP12_1.Text = CalculateData(12, lstPL(0))
        lblP13_1.Text = CalculateData(13, lstPL(0))
        lblP14_1.Text = CalculateData(14, lstPL(0))
        lblP15_1.Text = CalculateData(15, lstPL(0))
        lblP16_1.Text = CalculateData(16, lstPL(0))

        lblDT1_1.Text = CalculateDate(1, lstPL(0))
        lblDT2_1.Text = CalculateDate(2, lstPL(0))
        lblDT3_1.Text = CalculateDate(3, lstPL(0))
        lblDT4_1.Text = CalculateDate(4, lstPL(0))
        lblDT5_1.Text = CalculateDate(5, lstPL(0))
        lblDT6_1.Text = CalculateDate(6, lstPL(0))
        lblDT7_1.Text = CalculateDate(7, lstPL(0))
        lblDT8_1.Text = CalculateDate(8, lstPL(0))
        lblDT9_1.Text = CalculateDate(9, lstPL(0))
        lblDT10_1.Text = CalculateDate(10, lstPL(0))
        lblDT11_1.Text = CalculateDate(11, lstPL(0))
        lblDT12_1.Text = CalculateDate(12, lstPL(0))
        lblDT13_1.Text = CalculateDate(13, lstPL(0))
        lblDT14_1.Text = CalculateDate(14, lstPL(0))
        lblDT15_1.Text = CalculateDate(15, lstPL(0))
        lblDT16_1.Text = CalculateDate(16, lstPL(0))

        ''Prouction Plan 2
        lblP1_2.Text = CalculateData(1, lstPL(1))
        lblP2_2.Text = CalculateData(2, lstPL(1))
        lblP3_2.Text = CalculateData(3, lstPL(1))
        lblP4_2.Text = CalculateData(4, lstPL(1))
        lblP5_2.Text = CalculateData(5, lstPL(1))
        lblP6_2.Text = CalculateData(6, lstPL(1))
        lblP7_2.Text = CalculateData(7, lstPL(1))
        lblP8_2.Text = CalculateData(8, lstPL(1))
        lblP9_2.Text = CalculateData(9, lstPL(1))
        lblP10_2.Text = CalculateData(10, lstPL(1))
        lblP11_2.Text = CalculateData(11, lstPL(1))
        lblP12_2.Text = CalculateData(12, lstPL(1))
        lblP13_2.Text = CalculateData(13, lstPL(1))
        lblP14_2.Text = CalculateData(14, lstPL(1))
        lblP15_2.Text = CalculateData(15, lstPL(1))
        lblP16_2.Text = CalculateData(16, lstPL(1))

        lblDT1_2.Text = CalculateDate(1, lstPL(1))
        lblDT2_2.Text = CalculateDate(2, lstPL(1))
        lblDT3_2.Text = CalculateDate(3, lstPL(1))
        lblDT4_2.Text = CalculateDate(4, lstPL(1))
        lblDT5_2.Text = CalculateDate(5, lstPL(1))
        lblDT6_2.Text = CalculateDate(6, lstPL(1))
        lblDT7_2.Text = CalculateDate(7, lstPL(1))
        lblDT8_2.Text = CalculateDate(8, lstPL(1))
        lblDT9_2.Text = CalculateDate(9, lstPL(1))
        lblDT10_2.Text = CalculateDate(10, lstPL(1))
        lblDT11_2.Text = CalculateDate(11, lstPL(1))
        lblDT12_2.Text = CalculateDate(12, lstPL(1))
        lblDT13_2.Text = CalculateDate(13, lstPL(1))
        lblDT14_2.Text = CalculateDate(14, lstPL(1))
        lblDT15_2.Text = CalculateDate(15, lstPL(1))
        lblDT16_2.Text = CalculateDate(16, lstPL(1))

        ''Prouction Plan 3
        lblP1_3.Text = CalculateData(1, lstPL(2))
        lblP2_3.Text = CalculateData(2, lstPL(2))
        lblP3_3.Text = CalculateData(3, lstPL(2))
        lblP4_3.Text = CalculateData(4, lstPL(2))
        lblP5_3.Text = CalculateData(5, lstPL(2))
        lblP6_3.Text = CalculateData(6, lstPL(2))
        lblP7_3.Text = CalculateData(7, lstPL(2))
        lblP8_3.Text = CalculateData(8, lstPL(2))
        lblP9_3.Text = CalculateData(9, lstPL(2))
        lblP10_3.Text = CalculateData(10, lstPL(2))
        lblP11_3.Text = CalculateData(11, lstPL(2))
        lblP12_3.Text = CalculateData(12, lstPL(2))
        lblP13_3.Text = CalculateData(13, lstPL(2))
        lblP14_3.Text = CalculateData(14, lstPL(2))
        lblP15_3.Text = CalculateData(15, lstPL(2))
        lblP16_3.Text = CalculateData(16, lstPL(2))

        lblDT1_3.Text = CalculateDate(1, lstPL(2))
        lblDT2_3.Text = CalculateDate(2, lstPL(2))
        lblDT3_3.Text = CalculateDate(3, lstPL(2))
        lblDT4_3.Text = CalculateDate(4, lstPL(2))
        lblDT5_3.Text = CalculateDate(5, lstPL(2))
        lblDT6_3.Text = CalculateDate(6, lstPL(2))
        lblDT7_3.Text = CalculateDate(7, lstPL(2))
        lblDT8_3.Text = CalculateDate(8, lstPL(2))
        lblDT9_3.Text = CalculateDate(9, lstPL(2))
        lblDT10_3.Text = CalculateDate(10, lstPL(2))
        lblDT11_3.Text = CalculateDate(11, lstPL(2))
        lblDT12_3.Text = CalculateDate(12, lstPL(2))
        lblDT13_3.Text = CalculateDate(13, lstPL(2))
        lblDT14_3.Text = CalculateDate(14, lstPL(2))
        lblDT15_3.Text = CalculateDate(15, lstPL(2))
        lblDT16_3.Text = CalculateDate(16, lstPL(2))

        ''Prouction Plan 4
        lblP1_4.Text = CalculateData(1, lstPL(3))
        lblP2_4.Text = CalculateData(2, lstPL(3))
        lblP3_4.Text = CalculateData(3, lstPL(3))
        lblP4_4.Text = CalculateData(4, lstPL(3))
        lblP5_4.Text = CalculateData(5, lstPL(3))
        lblP6_4.Text = CalculateData(6, lstPL(3))
        lblP7_4.Text = CalculateData(7, lstPL(3))
        lblP8_4.Text = CalculateData(8, lstPL(3))
        lblP9_4.Text = CalculateData(9, lstPL(3))
        lblP10_4.Text = CalculateData(10, lstPL(3))
        lblP11_4.Text = CalculateData(11, lstPL(3))
        lblP12_4.Text = CalculateData(12, lstPL(3))
        lblP13_4.Text = CalculateData(13, lstPL(3))
        lblP14_4.Text = CalculateData(14, lstPL(3))
        lblP15_4.Text = CalculateData(15, lstPL(3))
        lblP16_4.Text = CalculateData(16, lstPL(3))

        lblDT1_4.Text = CalculateDate(1, lstPL(3))
        lblDT2_4.Text = CalculateDate(2, lstPL(3))
        lblDT3_4.Text = CalculateDate(3, lstPL(3))
        lblDT4_4.Text = CalculateDate(4, lstPL(3))
        lblDT5_4.Text = CalculateDate(5, lstPL(3))
        lblDT6_4.Text = CalculateDate(6, lstPL(3))
        lblDT7_4.Text = CalculateDate(7, lstPL(3))
        lblDT8_4.Text = CalculateDate(8, lstPL(3))
        lblDT9_4.Text = CalculateDate(9, lstPL(3))
        lblDT10_4.Text = CalculateDate(10, lstPL(3))
        lblDT11_4.Text = CalculateDate(11, lstPL(3))
        lblDT12_4.Text = CalculateDate(12, lstPL(3))
        lblDT13_4.Text = CalculateDate(13, lstPL(3))
        lblDT14_4.Text = CalculateDate(14, lstPL(3))
        lblDT15_4.Text = CalculateDate(15, lstPL(3))
        lblDT16_4.Text = CalculateDate(16, lstPL(3))

        lblTotal1.Text = CalculateData(17, lstPL(0))
        lblTotal2.Text = CalculateData(17, lstPL(1))
        lblTotal3.Text = CalculateData(17, lstPL(2))
        lblTotal4.Text = CalculateData(17, lstPL(3))

    End Sub



这是生产计划课程



Here''s The Production Plan Class

Imports System.Data
Public Class ProductionPlan
    Public pid As Integer
    Public cons As String
    Public lot As String
    Public varian As String
    Public type As String
    Public Stations As New List(Of Station)
    Public dbCommand As OleDb.OleDbCommand
    Public dbReader As OleDb.OleDbDataReader
    Public Sub New()
        pid = 0
        cons = ""
        lot = "0"
        varian = "-"
    End Sub
    Public Sub GetStations()

        Dim st As Station
        dbCommand.CommandText = "SELECT ll.lb_loc_code,ll.lb_loc_type,COUNT(DISTINCT mot.Trolley) " & _
                                "FROM dbo.ML_on_Trolley mot RIGHT OUTER JOIN dbo.lb_loc ll ON " & _
                                "mot.[Type] = ll.lb_loc_type AND ll.lb_loc_code = mot.Station AND " & _
                                "mot.PID =" & pid & " " & _
                                "GROUP BY ll.lb_loc_code,ll.lb_loc_type ORDER BY ll.lb_loc_code"
        dbReader = dbCommand.ExecuteReader
        If dbReader.HasRows Then
            While dbReader.Read
                If dbReader.GetString(1) = type Then
                    st = New Station
                    st.dbCommand = dbCommand
                    st.dbReader = dbReader
                    st.id = dbReader.GetString(0)
                    st.totalTrolley = dbReader.GetInt32(2)
                    Stations.Add(st)
                End If
            End While
        End If
        dbReader.Close()
        Dim i As Integer
        For i = 0 To Stations.Count - 1
            Stations(i).GetCompleteTrolleys(pid)
            Stations(i).GetLastTimeUpdate(pid)
        Next
    End Sub
    Public Sub FinalizeMe()
        Me.Finalize()
    End Sub
End Class



这是车站班级



Here''s The Station Class

Imports Microsoft.VisualBasic
Imports System.Data
Public Class Station
    Public id As String
    Public name As String
    Public totalTrolley As Integer
    Public completeTrolley As Integer
    Public lastTimeUpdated As Date
    Public Trolleys As New List(Of Trolley)
    Public dbCommand As OleDb.OleDbCommand
    Public dbReader As OleDb.OleDbDataReader
    Private Sub GetTrolleys(ByVal PID As Integer)
        Dim trl As Trolley

        dbCommand.CommandText = "SELECT Trolley,count(part_number) FROM ML_on_trolley WHERE PID=" & PID & " AND Station=''" & id & "'' GROUP BY Trolley"
        dbReader = dbCommand.ExecuteReader
        If dbReader.HasRows Then
            While dbReader.Read
                trl = New Trolley
                trl.dbCommand = dbCommand
                trl.dbReader = dbReader
                trl.nama = dbReader.GetString(0)
                trl.totalItem = dbReader.GetInt32(1)
                Trolleys.Add(trl)
            End While
        End If
        dbReader.Close()
    End Sub
    Public Sub GetCompleteTrolleys(ByVal PID As Integer)
        GetTrolleys(PID)
        completeTrolley = 0
        Dim i As Integer
        For i = 0 To Trolleys.Count - 1
            If Trolleys(i).IsTrolleyComplete(PID, id) Then
                completeTrolley += 1
            End If
        Next
    End Sub
    Public Sub GetLastTimeUpdate(ByVal PID As Integer)
        dbCommand.CommandText = "SELECT TOP 1 dt_update FROM ML_on_Trolley WHERE PID=" & PID & " AND Station = ''" & id & "'' AND Status=1 ORDER BY dt_update DESC"
        dbReader = dbCommand.ExecuteReader
        If dbReader.HasRows Then
            dbReader.Read()
            lastTimeUpdated = dbReader.GetDateTime(0)
        Else
            lastTimeUpdated = Nothing
        End If
        dbReader.Close()
    End Sub
    Public Sub FinalizeMe()
        Me.Finalize()
    End Sub
End Class



这是手推车班



Here''s Trolley Class

Imports System.Data
Public Class Trolley
    Public nama As String
    Public trolleyType As String
    Public totalItem As Integer
    Public completeItem As Integer
    Public Items As New List(Of Item)
    Public dbCommand As OleDb.OleDbCommand
    Public dbReader As OleDb.OleDbDataReader
    Public Function IsTrolleyComplete(ByVal pid As Integer, ByVal station As String) As Boolean
        GetCompleteItems(pid, station)
        If totalItem = completeItem Then
            Return True
        Else
            Return False
        End If
    End Function
    Private Sub GetCompleteItems(ByVal PID As Integer, ByVal station As String)
        dbCommand.CommandText = "SELECT count(part_number) FROM ML_on_trolley WHERE PID=" & PID & " AND Station=''" & station & "'' AND Trolley=''" & nama & "'' AND Status=1"
        dbReader = dbCommand.ExecuteReader
        If dbReader.HasRows Then
            dbReader.Read()
            completeItem = dbReader.GetInt32(0)
        End If
        dbReader.Close()
    End Sub
    Public Sub FinalizeMe()
        Me.Finalize()
    End Sub
End Class



感谢建议.



Thank''s For the Suggestion

推荐答案

只需复制粘贴到代码块中即可发布代码.并且,如果您已使用while循环进行阅读. while(reader.read()),请确保已终止.
post your code by just copy paste inside a code block. And if you have used your while loop for reading. while(reader.read()), Make sure that is terminated.


我已经更新了我的问题.谢谢
我需要您的帮助来解决此问题.
i Have updated my Question. Thanks
I need you help to solve this.


但是,当我检查任务管理器时,我看到每次打开该页面时,CPU使用率平均为50%.这是为什么.我确定我总是关闭并处置所有连接命令和数据读取器...? :doh:
然后我关闭它,它又恢复正常了.(0%)?为什么,我想知道...?帮帮我..
But when i check on Task manager, i see that every time i open that page CPU Usage indicate to be 50% in average. Why is that. i am sure i always close and dispose all connection command and datareader...? :doh:
then i close it, it''s back to normal.. (0%)? Why, i wonder....? help me..


这篇关于AJAX多查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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