DATAGRIDVIEW自己写的分页,不使用RECORDSET方法

按钮点击响应的代码:

    Private   Sub btnleft_Click(ByVal ARG1 As System.Object, ByVal ARG2 As System.EventArgs) Handles btnleft.Click
        
Try

            
'public_COMFNC.LogErr("MSG801", 0, "頁移動処理(左)")

            lockcontrol()

            componentreadinpublicvariable()

            public_dsListData.Clear()

            
If public_CN_ORA_CONN.CN_Cmd_Data(public_dsListData, _
                                                           public_lNowPageNumber 
- 1, _
                                                           public_sRadioChoosed, _
                                                           public_sListBoxChoosed, _
                                                           public_lCount, _
                                                           public_lPageNumber, _
                                                           public_lNowPageNumber, _
                                                           public_lPageCount) 
= False Then

                public_COMFNC.LogErr(
"MSG801"1"頁移動処理(左)")

            
End If

            
'If public_lCount = 0 Then
            '    MsgBox("no data")
            'End If

            labelupdate()

            unlockcontrol()

            public_COMFNC.LogErr(
"MSG801"0"頁移動処理(左)")

        
Catch ex As Exception
            public_COMFNC.LogErr(
"MSG801"1"頁移動処理(左)")
        
End Try
    
End Sub


    
Private   Sub btnlefttop_Click(ByVal ARG1 As System.Object, ByVal ARG2 As System.EventArgs) Handles btnlefttop.Click
        
Try

            public_COMFNC.LogErr(
"MSG801"0"頁移動処理(左)")

            lockcontrol()

            componentreadinpublicvariable()

            public_dsListData.Clear()

            
If public_CN_ORA_CONN.CN_Cmd_Data(public_dsListData, _
                                                           
1, _
                                                           public_sRadioChoosed, _
                                                           public_sListBoxChoosed, _
                                                           public_lCount, _
                                                           public_lPageNumber, _
                                                           public_lNowPageNumber, _
                                                           public_lPageCount) 
= False Then
                public_COMFNC.LogErr(
"MSG801"1"頁移動処理(左)")

            
End If

            
'If public_lCount = 0 Then
            '    MsgBox("no data")
            'End If

            labelupdate()

            unlockcontrol()

            public_COMFNC.LogErr(
"MSG801"0"頁移動処理(左)")

        
Catch ex As Exception
            public_COMFNC.LogErr(
"MSG801"1"頁移動処理(左)")
        
End Try
    
End Sub

    
'  次のページと最後のページボタンを表示する
     Private   Sub btnright_Click(ByVal ARG1 As System.Object, ByVal ARG2 As System.EventArgs) Handles btnright.Click
        
Try
            lockcontrol()

            componentreadinpublicvariable()

            public_dsListData.Clear()

            
If public_CN_ORA_CONN.CN_Cmd_Data(public_dsListData, _
                                                           public_lNowPageNumber 
+ 1, _
                                                           public_sRadioChoosed, _
                                                           public_sListBoxChoosed, _
                                                           public_lCount, _
                                                           public_lPageNumber, _
                                                           public_lNowPageNumber, _
                                                           public_lPageCount) 
= False Then

                
MsgBox("error")
            
End If

            
If public_lCount = 0 Then
                
MsgBox("no data")
            
End If

            labelupdate()

            unlockcontrol()

        
Catch ex As Exception

        
End Try
    
End Sub


    
Private   Sub btnrightbottom_Click(ByVal ARG1 As System.Object, ByVal ARG2 As System.EventArgs) Handles btnrightbottom.Click
        
Try
            lockcontrol()

            componentreadinpublicvariable()

            public_dsListData.Clear()

            
If public_CN_ORA_CONN.CN_Cmd_Data(public_dsListData, _
                                                           public_lPageNumber, _
                                                           public_sRadioChoosed, _
                                                           public_sListBoxChoosed, _
                                                           public_lCount, _
                                                           public_lPageNumber, _
                                                           public_lNowPageNumber, _
                                                           public_lPageCount) 
= False Then
                
MsgBox("error")
            
End If

            
If public_lCount = 0 Then
                
MsgBox("no data")
            
End If

            labelupdate()

            unlockcontrol()
        
Catch ex As Exception
        
End Try
    
End Sub

 共同内数据调用的方法和接口

 

     Public   Function CN_Cmd_Data(ByRef p_ds_Top20 As DataSet, _
                                
ByVal p_iPageNo As Long, _
                                
ByVal p_sRadioButton As String, _
                                
ByVal p_sListbox As String, _
                                
ByRef p_lCount As Long, _
                                
ByRef p_lPageNumber As Long, _
                                
ByRef p_lNowPageNumber As Long, _
                                
ByRef p_lPageCount As LongAs Boolean
        
Try

            public_COMFNC.LogErr(
"MSG110", LogType.OperatingLog, "現在値データグリッド取得処理開始")

            
Dim sSQL_Txt_All As String = ""
            
Dim sSQL_Txt_20 As String = ""
            
Dim sSql_Conn As String = ""
            
Dim sTagkd As String = ""
            
Dim sFlag As String = ""
            
Dim sKJOCD As String = ""
            
Dim lListCount, lPageno As Long
            
Dim ds_All As New DataSet
            
Dim RI_NEW As New ReadIni

            
'◆DB接続初期化処理 START◆
            If RI_NEW.CM_InitCon(sSql_Conn) = False Then
                
Return False
            
End If
            
'◆Oracleコネクション◆
            SysOraCon = New System.Data.OracleClient.OracleConnection(sSql_Conn)
            SysOraCon.Open()
            SysOraTran 
= SysOraCon.BeginTransaction()
            SysOraCommand 
= SysOraCon.CreateCommand
            SysOraCommand.Transaction 
= SysOraTran
            
'◆DB接続初期化処理 END◆

            
'◆SELECT文作成 START◆
            '◆0:アナログ、1:デジタルTAGKD◆

            
If p_sListbox = "0" Then
                sKJOCD 
= " "
            
Else
                sKJOCD 
= "       WSIG.KJOCD = '" & p_sListbox & "' and "
            
End If

            
If p_sRadioButton = "デジタル" Then
                sSQL_Txt_All 
= "select " & _
                               
"count( TAGID) " & _
                               
"from (select " & _
                               
"       WSIG.TAGID," & _
                               
"       rownum num1 " & _
                               
"       from WSIG, WGDI " & _
                               
" WHERE " & _
                               sKJOCD 
& _
                               
"       WGDI.TAGID(+) = WSIG.TAGID) t "
            
ElseIf p_sRadioButton = "アナログ" Then
                sSQL_Txt_All 
= "select " & _
                               
"count( TAGID) " & _
                               
"from (select " & _
                               
"       WSIG.TAGID," & _
                               
"       rownum num1 " & _
                               
"       from WSIG, WGAI " & _
                               
" WHERE " & _
                               sKJOCD 
& _
                               
"       WGAI.TAGID(+) = WSIG.TAGID) t "
            
End If

            SysOraCommand.CommandText 
= sSQL_Txt_All
            
'◆アダプター作成◆
            SysOraAdapter = New System.Data.OracleClient.OracleDataAdapter
            SysOraAdapter.SelectCommand 
= SysOraCommand

            
'◆SQL実行◆
            ds_All.Reset()
            SysOraAdapter.Fill(ds_All)
            lListCount 
= CLng(ds_All.Tables(0).Rows(0).Item(0).ToString)
            p_lCount 
= lListCount
            
'◆データ総数の取得 END◆

            
'◆毎頁に表示するデータの数◆
            p_lPageCount = RI_NEW.GetPageCount
            
Dim iMod As Int16
            iMod 
= lListCount Mod p_lPageCount
            
'◆ページ総数 START◆
            If p_lCount > 0 Then
                
If iMod = 0 Then
                    lPageno 
= lListCount / p_lPageCount
                
Else
                    lPageno 
= Int(lListCount / p_lPageCount) + 1
                
End If
            
Else
                lPageno 
= 0
            
End If
            p_lPageNumber 
= lPageno
            
'◆ページ総数 END◆

            
If p_iPageNo < 0 Then
                
Return False
            
End If

            
'◆◆
            If p_iPageNo >= lPageno Then
                sFlag 
= "rightbottom"
                p_lNowPageNumber 
= lPageno
            
ElseIf p_iPageNo <= 1 Then
                sFlag 
= "lefttop"
                p_lNowPageNumber 
= 1
            
Else
                sFlag 
= "left"
                p_lNowPageNumber 
= p_iPageNo
            
End If
            
If p_sRadioButton = "デジタル" Then
                sSQL_Txt_20 
= "SELECT                               " & _
                              
"T.TAGID AS 信号コード,              " & _
                              
"T.KEINM AS 系列名称,                  " & _
                              
"T.KJONM AS 機場名称,                  " & _
                              
"T.STBNM AS 設備名称,                  " & _
                              
"T.DATNM AS 信号名称,                  " & _
                              
"T.PANDUAN AS 現在値,                  " & _
                              
"T.PANDUAN2 AS 動作単位              " & _
                              
"FROM (SELECT                       " & _
                              
"   WSIG.TAGID,                     " & _
                              
"   WSIG.KEINM,                     " & _
                              
"   WSIG.KJONM,                     " & _
                              
"   WSIG.STBNM,                     " & _
                              
"   WSIG.DATNM,                     " & _
                              
"   WSIG.TANNM,                     " & _
                              
"   ROWNUM NUM1,                    " & _
                              
"   CASE                            " & _
                              
"   WHEN WSIG.CHKBT = 0             " & _
                              
"   THEN                            " & _
                              
"         CASE                      " & _
                              
"         WHEN WGDI.DIDAT = '0'     " & _
                              
"         THEN 'OFF'                " & _
                              
"         ELSE                      " & _
                              
"         'ON'                      " & _
                              
"         END                       " & _
                              
"   WHEN WSIG.CHKBT = 1             " & _
                              
"   THEN                            " & _
                              
"         CASE                      " & _
                              
"         WHEN WGDI.DIDAT = '1'     " & _
                              
"         THEN 'OFF'                " & _
                              
"         ELSE                      " & _
                              
"         'ON'                      " & _
                              
"         END                       " & _
                              
"   ELSE                            " & _
                              
"   ''                              " & _
                              
"   END                             " & _
                              
"   AS PANDUAN,                     " & _
                              
"      CASE                               " & _
                              
"      WHEN WSIG.CHKBT = 0             " & _
                              
"      THEN                            " & _
                              
"            CASE                      " & _
                              
"            WHEN WGDI.DIDAT = '0'     " & _
                              
"            THEN                      " & _
                              
"                CASE                  " & _
                              
"                WHEN WSIG.FKYNM ='1'  " & _
                              
"                THEN                  " & _
                              
"                    WSIG.HATNM        " & _
                              
"                ELSE                  " & _
                              
"                    ''                " & _
                              
"                END                   " & _
                              
"          ELSE                        " & _
                              
"            ''                        " & _
                              
"          END                         " & _
                              
"      WHEN WSIG.CHKBT = 1             " & _
                              
"      THEN                            " & _
                              
"            CASE                      " & _
                              
"            WHEN WGDI.DIDAT = '0'     " & _
                              
"            THEN                      " & _
                              
"                CASE                  " & _
                              
"                WHEN WSIG.HATNM ='1'  " & _
                              
"                THEN                  " & _
                              
"                    WSIG.FKYNM        " & _
                              
"                ELSE                  " & _
                              
"                    ''                " & _
                              
"                END                   " & _
                              
"          ELSE                        " & _
                              
"            ''                        " & _
                              
"          END                         " & _
                              
"      ELSE                            " & _
                              
"          ''                          " & _
                              
"      END                             " & _
                              
"      AS PANDUAN2                     " & _
                              
"   FROM WSIG,WGDI                  " & _
                              
"   WHERE                           " & _
                              sKJOCD 
& _
                              
"   WGDI.TAGID(+) = WSIG.TAGID) t   "
            
ElseIf p_sRadioButton = "アナログ" Then
                sSQL_Txt_20 
= "SELECT                               " & _
                              
"T.TAGID AS 信号コード,              " & _
                              
"T.KEINM AS 系列名称,                  " & _
                              
"T.KJONM AS 機場名称,                  " & _
                              
"T.STBNM AS 設備名称,                  " & _
                              
"T.DATNM AS 信号名称,                  " & _
                              
"T.PANDUAN AS 現在値,                  " & _
                              
"T.TANNM AS 動作単位                  " & _
                              
"FROM (SELECT                       " & _
                              
"   WSIG.TAGID,                     " & _
                              
"   WSIG.KEINM,                     " & _
                              
"   WSIG.KJONM,                     " & _
                              
"   WSIG.STBNM,                     " & _
                              
"   WSIG.DATNM,                     " & _
                              
"   WSIG.TANNM,                     " & _
                              
"   (WGAI.AIDAT / power(10,WSIG.TENPS)) " & _
                              
"   PANDUAN,                        " & _
                              
"   ROWNUM NUM1                     " & _
                              
"   FROM WSIG,WGAI                  " & _
                              
"   WHERE                           " & _
                              sKJOCD 
& _
                              
"   WGAI.TAGID(+) = WSIG.TAGID) t   "
            
End If
            
If sFlag = "first" Or sFlag = "lefttop" Then 'go to the top page 
                sSQL_Txt_20 = sSQL_Txt_20 & " where num1 <= " & RI_NEW.GetPageCount.ToString
            
ElseIf sFlag = "left" Or sFlag = "right" Then 'go to the last page 
                Dim lLeftCount, lRightCount As Long
                lLeftCount 
= (p_iPageNo - 1* RI_NEW.GetPageCount + 1
                lRightCount 
= p_iPageNo * RI_NEW.GetPageCount
                sSQL_Txt_20 
= sSQL_Txt_20 & " where num1 >= " & lLeftCount.ToString & " and num1 <= " & lRightCount.ToString
            
ElseIf sFlag = "rightbottom" Then 'go to the bottom page 
                Dim lLastCount As Long = 0
                lLastCount 
= lListCount Mod RI_NEW.GetPageCount
                
If lLastCount = 0 Then
                    sSQL_Txt_20 
= sSQL_Txt_20 & " where num1 > " & (lListCount - RI_NEW.GetPageCount).ToString
                
Else
                    sSQL_Txt_20 
= sSQL_Txt_20 & " where num1 > " & (lListCount - lLastCount).ToString
                
End If

            
End If

            
'◆SELECT文作成 END◆

            SysOraCommand.CommandText 
= sSQL_Txt_20
            
'◆アダプター作成◆
            SysOraAdapter = New System.Data.OracleClient.OracleDataAdapter
            SysOraAdapter.SelectCommand 
= SysOraCommand

            
'◆SQL実行◆
            p_ds_Top20.Reset()
            SysOraAdapter.Fill(p_ds_Top20)

            public_COMFNC.LogErr(
"MSG111", LogType.OperatingLog, "現在値データグリッド取得処理終了")

            
Return True

        
Catch ex As Exception

            public_COMFNC.LogErr(
"MSG112", LogType.SystemError, "現在値データグリッド取得処理システムエラー")
            
Return False
        
Finally
            
'◆Oracleデータベースクローズ処理◆
            '12 作成したオブジェクトを削除して、資源を解放する
            SysOraTran.Dispose()
            SysOraCon.Dispose()
            SysOraCon.Close()

        
End Try
    
End Function
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值