Retroceder   Foros del Web > Programación para sitios web > .NET

Respuesta
 
Herramientas Desplegado
Antiguo 25-jul-2006, 14:31   #1 (permalink)
motinuza ha deshabilitado el karma
 
Avatar de motinuza
 
Fecha de Ingreso: julio-2006
Mensajes: 15
Problemas con Store Procedure

Hola a todos!!!
Soy un principiante en .NET y como tengo mucha fuerza de voluntad me asignaron la tarea de armar una base de datos de personal en SQL que sea visualizada desde el Browser por los usuarios. Hasta ahi todo bien...
El problema es que necesito enviar a un Store Procedure el número de Legajo de una persona y obtener varios datos de la misma como respuesta
Desde ya muchas gracias a todos!!!
motinuza está desconectado   Responder Citando
Antiguo 25-jul-2006, 15:33   #2 (permalink)
royrojas está en el buen camino
 
Avatar de royrojas
 
Fecha de Ingreso: diciembre-2004
Mensajes: 383
aqui esta una clase muy completa para manejo de conexiones a la bd y tambien soporta procedimientos almacenados.
ahi esta el codigo de ejemplo tambien para descargar.

http://www.dotnetcr.com/index.aspx?I...clase-conexion

a los admins si gustan pueden poner el ejemplo en los faqs del sitio.
__________________
roy rojas
sitio: DotNetcr.com | foro: ForosDotNet.com | blog: the news star
royrojas está desconectado   Responder Citando
Antiguo 25-jul-2006, 18:30   #3 (permalink)
Moderador
RootK llegará a ser famoso muy prontoRootK llegará a ser famoso muy pronto
 
Avatar de RootK
 
Fecha de Ingreso: noviembre-2002
Ubicación: México D.F
Mensajes: 7.567
Enviar un mensaje por MSN a RootK
que milagro que andas por aqui royrojas , en cuanto a tu ejemplo no se ve mal la implementación que tienes aunque como comentario se puede optimizar todavía más ya que no hay manejo de caching en objetos, y en vez de usar los nombres de los tipos (if, then, etc) se pueden trabajar directamente con interfaces, etc, es por ello que te recomiendo que te bajes el Enterprise Library de microsoft y le heches un ojo al de datos para que veas a lo que me refiero.

Cita:
a los admins si gustan pueden poner el ejemplo en los faqs del sitio.
cualquier puede colocar una faq man.

Saludos y cualquier comentario será bienvenido
__________________
Nadie roba nada ya que en la vida todo se paga . . .
RootK está desconectado   Responder Citando
Antiguo 27-jul-2006, 00:05   #4 (permalink)
royrojas está en el buen camino
 
Avatar de royrojas
 
Fecha de Ingreso: diciembre-2004
Mensajes: 383
si hace tiempo que no entraba aqui, realmente tengo poco tiempo libre.

claro que se puede optimizar mas, pero vamos poco a poco, no se van a tirar todas las monedas en la primera jugada.

hay que ir demostrando los avances del codigo, por eso es que vamos asi.
__________________
roy rojas
sitio: DotNetcr.com | foro: ForosDotNet.com | blog: the news star
royrojas está desconectado   Responder Citando
Antiguo 27-jul-2006, 03:16   #5 (permalink)
moNTeZIon ha deshabilitado el karma
 
Avatar de moNTeZIon
 
Fecha de Ingreso: enero-2005
Ubicación: CanFenosa Martorelles BCN
Mensajes: 1.301
Enviar un mensaje por Skype™ a moNTeZIon
Hola motinuza,
Encontré esto que quizá te sirva:
http://www.codeproject.com/aspnet/MyDbViewerSite.asp
Si no tienes unas especificaciones muy concretas claro.
Saludos.
__________________
..:: moNTeZIon ::..
moNTeZIon está desconectado   Responder Citando
Antiguo 27-jul-2006, 18:21   #6 (permalink)
motinuza ha deshabilitado el karma
 
Avatar de motinuza
 
Fecha de Ingreso: julio-2006
Mensajes: 15
Exclamación

Les agradezco a todos pero no entiendo. Tal vez por ser nuevo en el tema no expresé mis dudas correctamente. Acá les mando el Store Procedure y el ASPX a ver si me pueden dar una mano.
Sigo obteniendo un solo parametro de salida y NO 2 o mas como necesito.
Gracias nuevamente!

CREATE procedure GetlastName_Gus2

@LEGAJO_PERSONAL varchar (7),
@nombres varchar (20) output,
@apellido varchar (20) output
as
select @nombres =nombres, @apellido = apellido
from personal
where LEGAJO_PERSONAL = @LEGAJO_PERSONAL
GO
************************************************** **************
<%@ Page Language="VB" %>
<%@ import Namespace="System.Data.SqlClient" %>
<%@ import Namespace="System.Data" %>
<%
Dim conPubs As SqlConnection
Dim cmdLastName As SqlCommand
Dim parmLastName As SqlParameter
Dim parmLP As SqlParameter

Dim strLastName As String

conPubs = New SqlConnection( "Server=localhost;database=PERSONAL_DE_COMUNICACIO NES;Integrated Security=SSPI")
cmdLastName = New SqlCommand( "GetlastName_Gus2", conPubs )
cmdLastName.CommandType = CommandType.StoredProcedure

' Parametro de entrada del LP
cmdLastName.Parameters.Add( "@LEGAJO_PERSONAL", "20557" )

' Parametro de salida del Nombre
parmLastName = cmdLastName.Parameters.Add( "@Nombres", SqlDbType.Varchar )
parmLastName.Size = 40
parmLastName.Direction = ParameterDirection.Output

' Parametro de salida del Apellido
parmLastName = cmdLastName.Parameters.Add( "@Apellido", SqlDbType.Varchar )
parmLastName.Size = 40
parmLastName.Direction = ParameterDirection.Output

' Ejecuta el Comando
conPubs.Open()
cmdLastName.ExecuteNonQuery()

' Recupera el valor de salida del Parametro
If Not IsDBNull( cmdLastName.Parameters( "@Apellido" ).Value ) Then
strLastName = cmdLastName.Parameters( "@Nombres" ).Value
Else
strLastName = "DESCONOCIDO !!!"
End If
conPubs.Close()
%>

El apellido es <%=strLastName%>
motinuza está desconectado   Responder Citando
Antiguo 27-jul-2006, 22:50   #7 (permalink)
Moderador
RootK llegará a ser famoso muy prontoRootK llegará a ser famoso muy pronto
 
Avatar de RootK
 
Fecha de Ingreso: noviembre-2002
Ubicación: México D.F
Mensajes: 7.567
Enviar un mensaje por MSN a RootK
la cuestion es que solo estás creando un solo objeto parámetro y debes crear uno por cada uno que necesites

haciendo unos pequeños ajustes a tu código quedaría de la siguiente forma:

Cita:
...
...
Dim conPubs As SqlConnection
Dim cmdLastName As SqlCommand
Dim parmLP As SqlParameter

Dim parmName As New SqlParameter("@Nombres", SqlDbType.VarChar, 40)
parmName.Direction = ParameterDirection.Output
cmdLastName.Parameters.Add(parmName)

Dim parmLastName As New SqlParameter("@Apellido", SqlDbType.VarChar, 40)
parmLastName.Direction = ParameterDirection.Output
cmdLastName.Parameters.Add(parmLastName)

' Ejecuta el Comando
conPubs.Open()
cmdLastName.ExecuteNonQuery()

' Recupera el valor de salida del Parametro
If Not IsDBNull(parmLastName.Value) Then
strLastName = parmName.Value
Else
strLastName = "DESCONOCIDO !!!"
End If
conPubs.Close()
%>

El apellido es <%=strLastName%>
salu2
RootK está desconectado   Responder Citando
Antiguo 28-jul-2006, 15:02   #8 (permalink)
motinuza ha deshabilitado el karma
 
Avatar de motinuza
 
Fecha de Ingreso: julio-2006
Mensajes: 15
GRACIAS!, Pero me sigue tirando UN resultado, (el nombre) seguro que me estoy equivocando en algo, en definitiva el codigo me quedo asi:


CREATE procedure GetlastName_Gus2

@LEGAJO_PERSONAL varchar (7),
@nombres varchar (20) output,
@apellido varchar (20) output

as

select @nombres = nombres , @apellido = apellido
from personal
where LEGAJO_PERSONAL = @LEGAJO_PERSONAL
GO

************************************************

<%@ Page Language="VB" %>
<%@ import Namespace="System.Data.SqlClient" %>
<%@ import Namespace="System.Data" %>
<%
Dim conPubs As SqlConnection
Dim cmdLastName As SqlCommand
Dim parmLP As SqlParameter
Dim strLastName As String

conPubs = New SqlConnection( "Server=localhost;database=PERSONAL_DE_COMUNICACIO NES;Integrated Security=SSPI")
cmdLastName = New SqlCommand( "GetlastName_Gus2", conPubs )
cmdLastName.CommandType = CommandType.StoredProcedure

' Parametro de entrada del LP
cmdLastName.Parameters.Add( "@LEGAJO_PERSONAL", "20557" )

' 1er. Parametro de salida, Nombre
Dim parmName As New SqlParameter("@Nombres", SqlDbType.VarChar, 40)
parmName.Direction = ParameterDirection.Output
cmdLastName.Parameters.Add(parmName)

' 2do. Parametro de salida, Apellido
Dim parmLastName As New SqlParameter("@Apellido", SqlDbType.VarChar, 40)
parmLastName.Direction = ParameterDirection.Output
cmdLastName.Parameters.Add(parmLastName)

' Ejecuta el Comando
conPubs.Open()
cmdLastName.ExecuteNonQuery()

' Recupera el valor de salida del Parametro
If Not IsDBNull(parmLastName.Value) Then
strLastName = parmName.Value
Else
strLastName = "DESCONOCIDO !!!"
End If
conPubs.Close()
%>

El apellido y el nombre es <%=strLastName%>
motinuza está desconectado   Responder Citando
Antiguo 28-jul-2006, 17:51   #9 (permalink)
lanzi no se puede cailificar en este momento
 
Avatar de lanzi
 
Fecha de Ingreso: noviembre-2005
Ubicación: BUENOS AIRES
Mensajes: 52
Soy bastante nuevo en esto, pero no puede ser que haya algun problema con el SQL? qUIEN HIZO EL sTORED pROCEDURE? Fijate, quizas el problema venga por ahi...
lanzi está desconectado   Responder Citando
Antiguo 28-jul-2006, 19:13   #10 (permalink)
Moderador
RootK llegará a ser famoso muy prontoRootK llegará a ser famoso muy pronto
 
Avatar de RootK
 
Fecha de Ingreso: noviembre-2002
Ubicación: México D.F
Mensajes: 7.567
Enviar un mensaje por MSN a RootK
cambia ésto:

cmdLastName.ExecuteNonQuery()

por ésto:

Cita:
Dim dr as SqlDataReader = cmdLastName.ExecuteReader()
dr.Read ()
...
RootK está desconectado   Responder Citando
Antiguo 29-jul-2006, 17:17   #11 (permalink)
Jorgemen ha deshabilitado el karma
 
Avatar de Jorgemen
 
Fecha de Ingreso: mayo-2005
Ubicación: Cusco-Perú
Mensajes: 275
Enviar un mensaje por AIM a Jorgemen Enviar un mensaje por MSN a Jorgemen Enviar un mensaje por Skype™ a Jorgemen
Hay un proyecto gratuito que se llama pachacamaq y que es muy bueno para aprender sobre todo esto que plantearón, hay para VB y Csharp, no recuerdo muy bien el link pero en google poniendo pachacamaq lo encuentran de seguro.
__________________
Correo : jorgitomen18@hotmail.com:arriba:
Jorgemen está desconectado   Responder Citando
Antiguo 31-jul-2006, 15:24   #12 (permalink)
motinuza ha deshabilitado el karma
 
Avatar de motinuza
 
Fecha de Ingreso: julio-2006
Mensajes: 15
Parpadear

Gracias Maestros!!!... me salvaron la vida!!
motinuza está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 02:48.
Políticas de Uso de Foros del Web


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96