Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/12/2006, 13:22
Avatar de ing_aprendiz
ing_aprendiz
 
Fecha de Ingreso: septiembre-2005
Mensajes: 136
Antigüedad: 19 años, 6 meses
Puntos: 0
error con clase conexion

hola amigos foreros espero puedan ayudarme con la siguiente duda, tengo el siguiente código en visual basic 2005.

Código:
mports System.Data.Common
Imports System.Data
Imports System.Configuration


''' <summary>
''' Representa la base de datos en el sistema.
''' Ofrece los métodos de acceso a misma.
''' </summary>
Public Class DataBase

    Private _Conexion As DbConnection = Nothing
    Private _Comando As DbCommand = Nothing
    Private _Transaccion As DbTransaction = Nothing
    Private _CadenaConexion As String

    Private Shared _Factory As DbProviderFactory = Nothing

    ''' <summary>
    ''' Crea una instancia del acceso a la base de datos.
    ''' </summary>

    Public Sub New()
        Configurar()
    End Sub

    ''' <summary>
    ''' Configura el acceso a la base de datos para su utilización.
    ''' </summary>
    ''' <exception cref="ExceptionDataBase">Si existe un error al cargar la configuración.</exception>
    
    Private Sub Configurar()
        Try
            Dim proveedor As String = ConfigurationManager.AppSettings.Get("PROVEEDOR_ADONET")
            Me._CadenaConexion = ConfigurationManager.AppSettings.Get("CADENA_Conexion")
            DataBase._Factory = DbProviderFactories.GetFactory(proveedor)
        Catch ex As Configuration.ConfigurationException
            Throw New ExceptionDataBase("Error al cargar la configuración del acceso a datos.", ex)
        End Try
    End Sub

    ''' <summary>
    ''' Permite desconectarse de la base de datos.
    ''' </summary>
    Public Sub Desconectar()
        If Me._Conexion.State.Equals(ConnectionState.Open) Then
            Me._Conexion.Close()
        End If
    End Sub

    ''' <summary>
    ''' Se concecta con la base de datos.
    ''' </summary>
    ''' <exception cref="ExceptionDataBase">Si existe un error al conectarse.</exception> 
    Public Sub Conectar()
        If Not Me._Conexion Is Nothing Then
            If Me._Conexion.State.Equals(ConnectionState.Closed) Then
                Throw New ExceptionDataBase("La conexión ya se encuentra abierta.")
            End If
        End If

        Try
            If Me._Conexion Is Nothing Then
                Me._Conexion = _Factory.CreateConnection()
                Me._Conexion.ConnectionString = _CadenaConexion
            End If
            Me._Conexion.Open()
        Catch ex As DataException
            Throw New ExceptionDataBase("Error al conectarse.")
        End Try
    End Sub

    ''' <summary>
    ''' Crea un comando en base a una sentencia SQL.Ejemplo:
    ''' <code>SELECT * FROM Tabla WHERE campo1=@campo1, campo2=@campo2</code>
    ''' Guarda el comando para el seteo de parámetros y la posterior ejecución.
    ''' </summary>
    ''' <param name="sentenciaSQL">La sentencia SQL con el formato: SENTENCIA [param = @param,]</param>
    Public Sub CrearComando(ByVal sentenciaSQL As String)
        Me._Comando = _Factory.CreateCommand()
        Me._Comando.Connection = Me._Conexion
        Me._Comando.CommandType = CommandType.Text
        Me._Comando.CommandText = sentenciaSQL
        If Not Me._Transaccion Is Nothing Then
            Me._Comando.Transaction = Me._Transaccion
        End If
    End Sub

    ''' <summary>
    ''' Setea un parámetro como nulo del comando creado.
    ''' </summary>
    ''' <param name="nombre">El nombre del parámetro cuyo valor será nulo.</param>
    Public Sub AsignarParametroNulo(ByVal nombre As String)
        AsignarParametro(nombre, "", "NULL")
    End Sub

    ''' <summary>
    ''' Asigna un parámetro de tipo cadena al comando creado.
    ''' </summary>
    ''' <param name="nombre">El nombre del parámetro.</param>
    ''' <param name="valor">El valor del parámetro.</param>
    Public Sub AsignarParametroCadena(ByVal nombre As String, ByVal valor As String)
        AsignarParametro(nombre, "'", valor)
    End Sub

    ''' <summary>
    ''' Asigna un parámetro de tipo entero al comando creado.
    ''' </summary>
    ''' <param name="nombre">El nombre del parámetro.</param>
    ''' <param name="valor">El valor del parámetro.</param>
    Public Sub AsignarParametroEntero(ByVal nombre As String, ByVal valor As Integer)
        AsignarParametro(nombre, "", valor.ToString())
    End Sub

    ''' <summary>
    ''' Asigna un parámetro al comando creado.
    ''' </summary>
    ''' <param name="nombre">El nombre del parámetro.</param>
    ''' <param name="separador">El separador que será agregado al valor del parámetro.</param>
    ''' <param name="valor">El valor del parámetro.</param>
    Private Sub AsignarParametro(ByVal nombre As String, ByVal separador As String, ByVal valor As String)
        Dim indice As Integer = Me._Comando.CommandText.IndexOf(nombre)
        Dim prefijo As String = Me._Comando.CommandText.Substring(0, indice)
        Dim sufijo As String = Me._Comando.CommandText.Substring(indice + nombre.Length)
        Me._Comando.CommandText = prefijo + separador + valor + separador + sufijo
    End Sub

    ''' <summary>
    ''' Asigna un parámetro de tipo fecha al comando creado.
    ''' </summary>
    ''' <param name="nombre">El nombre del parámetro.</param>
    ''' <param name="valor">El valor del parámetro.</param>
    Public Sub AsignarParametroFecha(ByVal nombre As String, ByVal valor As DateTime)
        AsignarParametro(nombre, "'", valor.ToString())
    End Sub

    ''' <summary>
    ''' Ejecuta el comando creado y retorna el resultado de la consulta.
    ''' </summary>
    ''' <returns>El resultado de la consulta.</returns>
    ''' <exception cref="ExceptionDataBase">Si ocurre un error al ejecutar el comando.</exception>
    Public Function EjecutarConsulta() As DbDataReader
        Return Me._Comando.ExecuteReader()
    End Function

    ''' <summary>
    ''' Ejecuta el comando creado y retorna un escalar.
    ''' </summary>
    ''' <returns>El escalar que es el resultado del comando.</returns>
    ''' <exception cref="ExceptionDataBase">Si ocurre un error al ejecutar el comando.</exception>
    Public Function EjecutarEscalar() As Integer
        Dim escalar As Integer = 0
        Try
            escalar = Integer.Parse(Me._Comando.ExecuteScalar().ToString())
        Catch ex As InvalidCastException
            Throw New ExceptionDataBase("Error al ejecutar un escalar.", ex)
        End Try
        Return escalar
    End Function

    ''' <summary>
    ''' Ejecuta el comando creado.
    ''' </summary>
    Public Sub EjecutarComando()
        Me._Comando.ExecuteNonQuery()
    End Sub

    ''' <summary>
    ''' Comienza una transacción en base a la conexion abierta.
    ''' Todo lo que se ejecute luego de esta ionvocación estará 
    ''' dentro de una tranasacción.
    ''' </summary>
    Public Sub ComenzarTransaccion()
        If Me._Transaccion Is Nothing Then
            Me._Transaccion = Me._Conexion.BeginTransaction()
        End If
    End Sub

    ''' <summary>
    ''' Cancela la ejecución de una transacción.
    ''' Todo lo ejecutado entre ésta invocación y su 
    ''' correspondiente <c>ComenzarTransaccion</c> será perdido.
    ''' </summary>
    ''' <remarks></remarks>
    Public Sub CancelarTransaccion()
        If Not Me._Transaccion Is Nothing Then
            Me._Transaccion.Rollback()
        End If
    End Sub

    ''' <summary>
    ''' Confirma todo los comandos ejecutados entre el <c>ComanzarTransaccion</c>
    ''' y ésta invocación.
    ''' </summary>
    Public Sub ConfirmarTransaccion()
        If Not Me._Transaccion Is Nothing Then
            Me._Transaccion.Commit()
        End If
    End Sub
End Class
resulta que me sale un error que no se encuentra declarado el nombre configurationManager. si alguno de ustedes puede ayudarme estare agradecido.