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

          主站蜘蛛池模板: 交城县| 读书| 准格尔旗| 酉阳| 宁晋县| 小金县| 高清| 中西区| 嵩明县| 茶陵县| 图们市| 牙克石市| 贡山| 会同县| 关岭| 泉州市| 花莲县| 枣阳市| 彰化县| 溧水县| 广州市| 孟连| 额济纳旗| 通海县| 波密县| 高雄县| 焦作市| 浦北县| 毕节市| 乌鲁木齐市| 东乡族自治县| 芜湖县| 台南县| 榆中县| 靖边县| 若尔盖县| 阳东县| 沐川县| 禹州市| 宣武区| 山东省|