這些都是去年的代碼,怕遺忘,也為了方便查找,所以放到這里保存!
建立工程就不說了
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
參數(shù):_arrayPro() 存儲過程的參數(shù);_strProName 存儲過程名;_strCon Oracle的連接對象
2、執(zhí)行代碼
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調(diào)用存儲過程有兩種方法,以上是其中一種比較簡便的方法(自認(rèn)為),
另一種也簡單,就是做成一條SQL語句來執(zhí)行,并返回結(jié)果。但是手頭沒有代碼,也就寫到這里了