superwei

          導航

          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          統計

          常用鏈接

          留言簿(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 小辭猬 閱讀(1098) 評論(0)  編輯  收藏 所屬分類: DoNet

          主站蜘蛛池模板: 伊吾县| 长寿区| 象山县| 共和县| 武胜县| 陈巴尔虎旗| 潞西市| 乌兰察布市| 永德县| 宜兴市| 仁怀市| 朝阳市| 碌曲县| 青河县| 抚松县| 双鸭山市| 洮南市| 西青区| 青冈县| 城步| 温泉县| 普宁市| 浮山县| 晋宁县| 漳浦县| 收藏| 昭平县| 全椒县| 邮箱| 开封县| 临夏县| 明水县| 茶陵县| 灵武市| 平原县| 北碚区| 榆林市| 三原县| 三河市| 鞍山市| 乌兰浩特市|