Ver Mensaje Individual
  #2 (permalink)  
Antiguo 24/03/2010, 09:49
Uialwen
 
Fecha de Ingreso: marzo-2010
Mensajes: 3
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Ayuda crear un array sqlparameter vb net 2008

Hola Merkslay:

No es que sea muy experta pero te voy a intentar ayudar :) Respecto a la primera parte:

Dim params As New SqlParameter --> Estás creando una variable de tipo SplParameter

Dim params = New SqlParameter() --> Igual pero es un array

Y para la segunda parte te voy a poner un ejemplo de código,ok?

Esta es la capa de negocios con el procedimiento para insertar:

Private _objDatos As CapaDatos.DataAccess

Public Sub Insertar (ByVal Tabla as String,byVal p1 as Integer, ..p2, p3)


Dim arrParams() As SqlParameter= { _
me._objDatos.CreateParameter("@Tabla", SqlDbType.NVarChar, Tabla), _
me._objDatos.CreateParameter("@p1", SqlDbType.Int, p1),......}

dt = SelectSP(strSelect, arrParams)



End Sub

----------------------------------------------------

Y esta es la capa de acceso a datos, con la función para ejecutar el Sp y otra para crear los parámetros:

Namespace CapaDatos

Public Class DataAccess


Private _conn As SqlConnection

''' <summary>
''' Ejecuta un procedimiento almacenado de acción con parámetros.
''' </summary>
''' <param name="SPName">Nombre del procedimiento almacenado.</param>
''' <param name="Parameters">Array que contiene los parámetros del SP.</param>
Public Function ExecuteSP( _
ByVal SPName As String, _
ByVal Parameters() As SqlParameter) _
As Integer

Dim cmdCommand As New SqlCommand
Dim intFilasAfectadas As Integer

Try
With cmdCommand
.Connection = Me._conn
.CommandType = CommandType.StoredProcedure
.CommandText = SPName
With .Parameters
.AddRange(Parameters)
End With
End With

If Me._conn.State <> ConnectionState.Open Then
Me._conn.Open()
End If

intFilasAfectadas = cmdCommand.ExecuteNonQuery()
Catch ex As Exception
Throw New Exception("No se pudo ejecutar el comando: " & ex.Message)
'Throw New Exception(String.Format("{No se pudo ejecutar el comando. {0}:{1}", ex.InnerException.ToString, ex.Message))
Finally
Me._conn.Close()
End Try

Return intFilasAfectadas

End Function

Public Function CreateParameter( _
ByVal ParamName As String, _
ByVal SqlDbType As System.Data.SqlDbType, _
ByVal Value As Object) _
As System.Data.SqlClient.SqlParameter

Dim p As New System.Data.SqlClient.SqlParameter
With p
.ParameterName = ParamName
.SqlDbType = SqlDbType
.Value = Value
End With

Return p

End Function


A ver si te sirve de ayuda :)

PD:está en vb2005 pero será igual en 2008