Autor
|
Tema: llenar list(of oracleparameter) a partir de una clase (Leído 2,739 veces)
|
d91
Desconectado
Mensajes: 165
|
hola, estoy construyendo un pequeño proyecto con visual basic.net y oracle con store procedure, ya he visto algunos ejemplos para hacerlo en capas, lo unico que en los ejemplos esta lista se llena de manera estatica porque son procedimientos de select, pero necesito hacer un insert pero no se como recorrer la clase que la he recibido como objeto les dejo el procedimiento que si funciona pero es estatica con la lista y la que tengo que implementar Public Function SelectEmple(ByVal spName, ByVal IntIdTienda As Integer) As DataSet Dim ds As DataSet Try con = New ConectDatos Dim listaParam As List(Of OracleParameter) = New List(Of OracleParameter) Dim param1 As OracleParameter = New OracleParameter("IntIdTienda", OracleDbType.Int32) param1.Value = IntIdTienda listaParam.Add(param1) Dim param2 As OracleParameter = New OracleParameter("ResCursor", OracleDbType.RefCursor) param2.Direction = ParameterDirection.Output listaParam.Add(param2) ds = New DataSet ds = con.getdataset(spName, listaParam) Return ds Catch ex As Exception Throw New ArgumentException("Error cursor USP_CARGA_EMPLEADOS" + ex.ToString) End Try End Function '***************************** '***************************** Public Function EjecutaSql(ByVal spName As String, ByVal entidad As Object) As Integer con = New ConectDatos Dim row As Integer Dim i As Integer Dim listaParam As List(Of OracleParameter) = New List(Of OracleParameter) 'Dim param1 As OracleParameter 'i = 0 ' 'For Each p As Object In entidad 'param1 = New OracleParameter(entidad(i++), OracleDbType.Int32) ' listaParam.Add(param1) ' Next row = con.EjecutarQuery(spName, listParam) Return row End Function
agradezco de antemano la orientacion
|
|
|
En línea
|
|
|
|
d91
Desconectado
Mensajes: 165
|
investigue un poco mas, hice algunas modificaciones, pero al ejecutar el executenonquery el error dice "El objeto debe estar abierto" y creo que se refiere a la conexion, aunque la conexion si funciona para el select, les dejo la modificacion y el ejecuta query Public Function EjecutaSql(ByVal spName As String, ByVal tienda As clstienda) As Integer Dim row As Integer Try con = New ConectDatos Dim listaParam As List(Of OracleParameter) = New List(Of OracleParameter) Dim param1 As OracleParameter = New OracleParameter("id_", OracleDbType.Int32) param1.Value = tienda.getid listaParam.Add(param1) Dim param2 As OracleParameter = New OracleParameter("tienda_", OracleDbType.Varchar2) param2.Value = tienda.getnombre listaParam.Add(param2) Dim param3 As OracleParameter = New OracleParameter("direccion_", OracleDbType.Varchar2) param3.Value = tienda.getdireccion listaParam.Add(param3) Dim param4 As OracleParameter = New OracleParameter("tel_", OracleDbType.Int32) param4.Value = tienda.gettel listaParam.Add(param4) Dim param5 As OracleParameter = New OracleParameter("gerente_", OracleDbType.Varchar2) param5.Value = tienda.getgerente listaParam.Add(param5) Dim param6 As OracleParameter = New OracleParameter("desc_", OracleDbType.Varchar2) param6.Value = tienda.getdesc listaParam.Add(param6) row = con.EjecutarQuery(spName, listaParam) Return row Catch ex As Exception Throw New Exception("Error al generar Consulta " + ex.Message.ToString) End Try End Function '******** '/////////// Public Function EjecutarQuery(ByVal spName As String, ByVal parameters As List(Of OracleParameter)) As Integer Dim cmd As OracleCommand Dim row As Integer 'List(Of OracleParameter) Try Using conexion() conexion.Open() cmd = New OracleCommand(spName, conexion) If Not parameters Is Nothing Then cmd.CommandType = System.Data.CommandType.StoredProcedure For Each p In parameters cmd.Parameters.Add(p) Next End If row = cmd.ExecuteNonQuery() Return row End Using Catch ex As Exception Throw New ArgumentException("No se logro ejecutar la consulta en la DataBase " + ex.Message.ToString) End Try End Function
|
|
|
En línea
|
|
|
|
d91
Desconectado
Mensajes: 165
|
bueno hay cosas que no se aclaran en los tutoriales, pero hay que ir listando las opciones implicitas de los diferentes metodos, el procedimiento ejecuta query le hacian falta un par de lineas para que funcionara, no entiendo porque para retornar un dataset no se necesita esas lineas Public Function EjecutarQuery(ByVal spName As String, ByVal parameters As List(Of OracleParameter)) As Integer Dim cmd As OracleCommand 'Dim row As Integer 'List(Of OracleParameter) Try Using conexion() conexion.Open() cmd = New OracleCommand(spName, conexion) cmd = conexion.CreateCommand() If Not parameters Is Nothing Then cmd.CommandText = spName cmd.CommandType = System.Data.CommandType.StoredProcedure For Each p In parameters cmd.Parameters.Add(p) Next End If cmd.Connection.Open() If cmd.ExecuteNonQuery() Then Return 1 Else Return 0 End If End Using Catch ex As Exception Throw New ArgumentException("No se logro ejecutar la consulta en la DataBase " + ex.Message.ToString) End Try End Function
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Problema con clase list
Programación C/C++
|
.:BlackCoder:.
|
5
|
3,046
|
15 Julio 2010, 02:41 am
por leogtz
|
|
|
Clase List STL de c++, como usarlo???
Programación C/C++
|
TaLaP0 XoR BiT
|
2
|
2,523
|
27 Octubre 2013, 21:37 pm
por TaLaP0 XoR BiT
|
|
|
Método list Clase File
Java
|
neveldine
|
1
|
1,976
|
29 Diciembre 2015, 18:24 pm
por 0xFer
|
|
|
Como llenar un arreglo a partir de un json
PHP
|
d91
|
1
|
3,001
|
10 Febrero 2017, 20:48 pm
por mchojrin
|
|
|
llenar un jcombobox usando el método set - get de una clase
Java
|
jorgecotrinax
|
6
|
5,578
|
1 Octubre 2021, 21:47 pm
por jorgecotrinax
|
|