superwei

          導航

          <2025年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          統計

          常用鏈接

          留言簿(4)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          VB.NET 2003 調用Oracle的存儲過程并返回游標值(原創)

          這些都是去年的代碼,怕遺忘,也為了方便查找,所以放到這里保存!
          建立工程就不說了
          1、新建一個Module,添加代碼如下:

              Public Function runProduce(ByVal _arrayPro() As OracleParameter, ByVal _strProName As String, ByVal _strCon As OracleClient.OracleConnection)
                  Dim total As Integer
                  Dim ocmd As New OracleCommand(_strProName, _strCon)
                  Dim oda As New OracleDataAdapter(ocmd)
                  Dim dsSales As New DataSet

                  ocmd.CommandType = CommandType.StoredProcedure

                  Dim errcdPara As New OracleParameter
                  With errcdPara
                      .ParameterName = "P_ERRCD"
                      .OracleType = OracleType.Char
                      .Size = 88
                      .Direction = ParameterDirection.InputOutput
                      .Value = ""
                  End With
                  Dim errMsgPara As New OracleParameter
                  With errMsgPara
                      .ParameterName = "P_ERRMSG"
                      .OracleType = OracleType.VarChar
                      .Size = 88
                      .Direction = ParameterDirection.InputOutput
                      .Value = ""
                  End With

                  ocmd.Parameters.Add(errcdPara)
                  ocmd.Parameters.Add(errMsgPara)
                  For total = UBound(_arrayPro) To 0 Step -1
                      ocmd.Parameters.Add(_arrayPro(total))
                  Next

                  Try
                      oda.Fill(dsSales)
                  Catch exp As Exception
                      'MessageBox.Show(exp.Message, MessageBoxButtons.OK, _
                      '    MessageBoxIcon.Error)
                      MsgBox(exp.Message)
                      Exit Function
                  End Try

                  _strCon.Close()
                  Return dsSales
              End Function

          參數:_arrayPro() 存儲過程的參數;_strProName 存儲過程名;_strCon Oracle的連接對象

          2、執行代碼

                  Dim strConn As oracConnection = oracConn()
                  Dim arrayPro(1) As OracleParameter

                  Dim sorPara As New OracleParameter
                  With sorPara
                      .ParameterName = "SOR_SHIWAKE"
                      .OracleType = OracleType.Cursor
                      .Direction = ParameterDirection.Output
                      .Value = ""
                  End With
                  arrayPro(0) = sorPara

                  Dim salePara As New OracleParameter
                  With salePara
                      .ParameterName = "P_SALEYMD"
                      .OracleType = OracleType.VarChar
                      .Direction = ParameterDirection.Input
                      .Value = strInput
                  End With
                  arrayPro(1) = salePara

                  If strConn.isConn = True Then
                      Dim dsDataSet As DataSet = runProduce(arrayPro, @produceName, conn)
                  End If

          .NET調用存儲過程有兩種方法,以上是其中一種比較簡便的方法(自認為),
          另一種也簡單,就是做成一條SQL語句來執行,并返回結果。但是手頭沒有代碼,也就寫到這里了



          posted on 2007-09-27 16:05 小辭猬 閱讀(1091) 評論(0)  編輯  收藏 所屬分類: DoNet

          主站蜘蛛池模板: 昌宁县| 湖北省| 晋宁县| 沈丘县| 外汇| 太康县| 蓬安县| 巴彦淖尔市| 商丘市| 沂源县| 仙游县| 大洼县| 泸水县| 阆中市| 宿迁市| 新昌县| 罗平县| 邵武市| 通渭县| 蓬溪县| 阳江市| 神池县| 衡南县| 长宁区| 望谟县| 哈密市| 武宁县| 贵港市| 平果县| 天祝| 永年县| 屯昌县| 益阳市| 皋兰县| 喀什市| 同德县| 垫江县| 深圳市| 二连浩特市| 宁安市| 桃园县|