Foros del Web » Programación para mayores de 30 ;) » .NET »

URGENTE!!!!Procedimiento almacenado............

Estas en el tema de URGENTE!!!!Procedimiento almacenado............ en el foro de .NET en Foros del Web. hola tengo una base de datos llamada "equipos" sqlserver, con los campos proy_codigo,proy_descripcion,proy_observ, todos varchar(50) - tengo un webforms con una grilla que carga la ...
  #1 (permalink)  
Antiguo 21/08/2007, 11:46
Avatar de mamicho  
Fecha de Ingreso: mayo-2007
Mensajes: 98
Antigüedad: 17 años, 9 meses
Puntos: 0
Pregunta URGENTE!!!!Procedimiento almacenado............

hola tengo una base de datos llamada "equipos" sqlserver, con los campos
proy_codigo,proy_descripcion,proy_observ, todos varchar(50)

- tengo un webforms con una grilla que carga la tabla proyectos
- tres textBox (txtCodigo,txtdescripcion,txtobserv)
- y dos botones modificar(procedimiento update),eliminar ( procedimiento delete).

me pidieron que el usuario selecciona una fila de la grilla y ejecuta culaquiera de estos botones.

ahora mi pregunta es como serian los procedimientos almacenados y que codigo tengo que poner en los botones?

de ante mano muchas gracias.
  #2 (permalink)  
Antiguo 21/08/2007, 11:47
Avatar de mamicho  
Fecha de Ingreso: mayo-2007
Mensajes: 98
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: URGENTE!!!!Procedimiento almacenado............

la tabla se llama proyectos
  #3 (permalink)  
Antiguo 23/08/2007, 07:51
 
Fecha de Ingreso: agosto-2007
Ubicación: Bogota Colombia
Mensajes: 5
Antigüedad: 17 años, 6 meses
Puntos: 0
De acuerdo Re: URGENTE!!!!Procedimiento almacenado............

Bueno primero que todo, yo uso Store Procedures en todas mis aplicaciones, te envio la clase que uso:

Public Class StoredProcedure

#Region " Variables "
Private mNombreProcedimiento As String
Private mParametros As Collection
#End Region

#Region " Propiedades "
Public Property Nombre() As String
Get
Return mNombreProcedimiento
End Get
Set(ByVal Value As String)
mNombreProcedimiento = Value
End Set
End Property

Public Property Parametros() As Collection
Get
Return mParametros
End Get
Set(ByVal Value As Collection)
mParametros = Value
End Set
End Property
#End Region

#Region " Constructor "

'Solo recibe el nombre del procedimiento e inicializa la colección.
Public Sub New(ByVal nNombre As String)
Try
Nombre = nNombre
Parametros = New Collection
Catch ex As Exception
Throw ex
End Try
End Sub

#End Region

#Region " Propiedades y Funciones "

'Agrega los parametros del procedimiento y su respectivo valor.
Public Sub AgregarParametro(ByVal pVariable As String, ByVal pValor As Object)
Try
Dim iParametro As New StoredProcedureParameter("@" & pVariable, pValor)
Me.Parametros.Add(iParametro)
Catch ex As Exception
Throw ex
End Try
End Sub

'Ejecuta el procedimiento almacenado.
Public Function EjecutarProcedimiento() As DataSet
Try
Dim Conn As New Conexion
Dim sqlCmd As New SqlCommand(Me.Nombre, Conn.SQLConn)
sqlCmd.CommandType = CommandType.StoredProcedure

Dim mParametro As StoredProcedureParameter

'Agrega las variables al procedimiento almacenado
For Each mParametro In Me.Parametros
Dim pParam As New SqlParameter(mParametro.Variable, mParametro.GetTypeProperty)
pParam.Direction = ParameterDirection.Input
pParam.Value = mParametro.Valor
sqlCmd.Parameters.Add(pParam)
Next

'SqlAdapter utiliza el SqlCommand para llenar el Dataset
Dim sda As New SqlDataAdapter(sqlCmd)

'Se llena el dataset
Dim ds As New DataSet
sda.Fill(ds)

Conn.SQLConn.Close()
Return ds
Catch ex As Exception
Throw ex
End Try
End Function

#End Region

End Class

Public Class StoredProcedureParameter

Private mVariable As String
Private mValor As Object

'Nombre de la variable, debe ser igual a la declarada en el procedimiento almacenado
Public Property Variable() As String
Get
Return mVariable
End Get
Set(ByVal Value As String)
mVariable = Value
End Set
End Property

'Valor de la variable, puede ser de cualquier tipo de dato. preferible que
'coincida con las variables declaradas en GetTypeProperty
Public Property Valor()
Get
Return mValor
End Get
Set(ByVal Value)
mValor = Value
End Set
End Property

'Se definen los posibles tipos de datos que se le van a enviar al procedimiento almacenado
'Esta lista podria aumentar conforme se usen otro tipo de variable.
Public ReadOnly Property GetTypeProperty() As SqlDbType
Get
If mValor.GetType.FullName = "System.String" Then
Return SqlDbType.VarChar
ElseIf mValor.GetType.FullName = "System.Int16" Then
Return SqlDbType.SmallInt
ElseIf mValor.GetType.FullName = "System.Int32" Then
Return SqlDbType.Int
ElseIf mValor.GetType.FullName = "System.Int64" Then
Return SqlDbType.BigInt
ElseIf mValor.GetType.FullName = "System.Decimal" Then
Return SqlDbType.Decimal
ElseIf mValor.GetType.FullName = "System.Double" Then
Return SqlDbType.Float
ElseIf mValor.GetType.FullName = "System.DateTime" Then
Return SqlDbType.SmallDateTime
ElseIf mValor.GetType.FullName = "System.Byte" Then
Return SqlDbType.Bit
End If
End Get
End Property

'Procedimiento de creacion de la variable.
Public Sub New(ByVal pVariable As String, ByVal pValor As Object)
Try
Me.Variable = pVariable
Me.Valor = pValor
Catch ex As Exception
Throw New Exception("Error en la creacion del Parametro" & vbCrLf & ex.Message)
End Try
End Sub

End Class


para usarla lo unico que haces es crear el objeto a la clase y al metodo que necesitas ejemplo:


DIm sp as new Aplicacion.storedProcedure("NombredelStoreProcedur e")
DIm ds as new dataset

sp.agregarparametro("codigo", txtCodigo.text)
ds = sp.ejecutarProcedimiento

'luego verificas los datos en el dataset, el dataset se llena pero solo con consultas de seleccion que te devuelvan datos.

Para el evento del datagrid dale en las propiedades que sea seleccionable y en el evento de la seleccion guardas el Id de la primera celda (asumo que seria el dato de la llave primaria en tu tabla base de datos) y le asignas la variable al evento del boton...


Espero te sirva.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:25.