
18/12/2006, 13:22
|
 | | | 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. |