DotNetcr.com
Si deseas hacer un intercambio de links con DotNetcr, escríbenos aquí
Recibe las actualizaciones vía RSS
Te invitamos a unirte en nuestras redes
   http://www.facebook.com/DotNetcr
   http://www.twitter.com/dotnetcr

Como realizar conexión con nuestra base de datos

Por royrojas | 12/5/2005 | Visitas 37,678 | Voto 5.00
En este ejemplo vamos a desarrollar una clase Conexion, en la cual se va a manejar el String de conexión y las funciones para el llamado de los datos. Tambien manejaremos el CommandTimeout para el tiempo de respuesta de nuestra consulta.
Categorías : VB.NET, SQL Server
Este articulo ya lo actualizamos, con la clase que agrega la funcionalidad de Procedimientos Almacenados en el link que mostramos acontinuación. Importante: haber leido primero este artículo base y luego el artículo actualizado para su mayor comprensión.

Actualización: Como invocar Procedimientos Almacenados en nuestra clase conexión

______

Descargar ejemplo ConexionDB_01.zip

En nuestras aplicaciones generalmente tenemos que manejar datos obtenidos de nuestras bases de datos, y para facilitarnos el trabajo tendremos que crear una clase que nos maneje las acciones que podremos hacer directamente en la base de datos, consultas, conexiones, llamadas a procedimientos almacenados y demás.

En esta ocación la clase conexión solo va a poder procesar Querys enviados desde el mismo programa, en la próxima entrega vamos a brindar la opción de como procesar procedimientos almacenados.

Para este ejemplo vamos a importar la clase SqlClient (Imports System.Data.SqlClient), pero bien para este mismo ejemplo podríamos utilizar las otras interfaces disponibles en .Net, como OracleClient, OleDb u Odbc.

Como primer paso vamos a crear una clase Conexion en la cual vamos escribir lo siguiente:

Imports System.Data.SqlClient

Public Class Conexion

#Region " Variables "

'Variable que utilizaremos para la conexion
Private mUsuario As String
Private mPassword As String
Private mConSSPI As Boolean = False
Private mServidor As String
Private mBaseDatos As String

#End Region

#Region " Propiedades "

'Propiedades publicas que podrán ser accesadas
'desde el form u otra clase

Public Property Usuario() As String
Get
Return mUsuario
End Get
Set(ByVal Value As String)
mUsuario = Value
End Set
End Property

Public Property Password() As String
Get
Return mPassword
End Get
Set(ByVal Value As String)
mPassword = Value
End Set
End Property

'SSPI indica si queremos la conexion
'con Seguridad Integrada
'En el caso de que ConSSPI sea True no es necesario
'enviar los datos de usuario y password
Public Property ConSSPI() As Boolean
Get
Return mConSSPI
End Get
Set(ByVal Value As Boolean)
mConSSPI = Value
End Set
End Property

Public Property Servidor() As String
Get
Return mServidor
End Get
Set(ByVal Value As String)
mServidor = Value
End Set
End Property

Public Property BaseDatos() As String
Get
Return mBaseDatos
End Get
Set(ByVal Value As String)
mBaseDatos = Value
End Set
End Property

#End Region

'Función privada para el manejo del String de conexion
Private Function StrConexion() As String
Try
Dim strConn As String
strConn = "Server=" & Servidor & "; " & _
"DataBase=" & BaseDatos & "; "
If Not ConSSPI Then
strConn &= "user id=" & Usuario & ";password=" & Password
Else
strConn &= "Integrated Security=SSPI"
End If

Return strConn
Catch ex As Exception
Throw ex
End Try
End Function

'Funcion a la cual se le envia el query de la
'consulta y nos retorna un DataSet
Public Function ConsultaBD(ByVal pQuery As String) As DataSet
Try
Return CreateDataSet(pQuery)
Catch ex As Exception
Throw ex
End Try
End Function

'Procesa el query y crea el dataset de la consulta
Private Function CreateDataSet(ByVal strSQL As String) As DataSet
Try
'Se crea la conexion a la base de datos.
Dim sqlConn As New SqlConnection(Me.StrConexion)

'SqlCommand es utilizado para ejecutar los comandos SQL
Dim sqlCmd As New SqlCommand(strSQL, sqlConn)

'Se le define el tiempo de espera en segundos para la consulta,
'el valor default es 30 segundos.
'Si una consulta es muy compleja podria ser que dure mucho en retornar los datos,
'por eso le definimos el tiempo de respuesta en bastantes segundos
sqlCmd.CommandTimeout = 3600

'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)

Return ds
Catch ex As Exception
Throw ex
End Try
End Function

End Class


Una ves que tenemos esta clase terminada, solo debemos llamarla desde el formulario o la capa de datos de nuestra aplicación.

Un ejemplo de como utilizar esta clase podría ser:

'Creamos una variable de tipo Conexion (clase que creamos arriba)
Dim con As New Conexion

'En el load de este ejemplo le definimos las variables
'para la conexion
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try
con.Servidor = "nombre_servidor"
con.BaseDatos = "nombre_basedatos"
con.Usuario = "usuario_bd"
con.Password = "clave_bd"
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub

'En este ejemplo tenemos esto en el boton pero lo correcto,
'seria manejar las consultas en otra capa de nuestra aplicacion.
'en la capa de datos
Private Sub btnDatos_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDatos.Click
Try
Dim ds As New DataSet
Dim strQry As String

strQry = "SELECT * FROM TABLA"
ds = con.ConsultaBD(strQry)

Me.dgDatos.DataSource = ds.Tables(0)

Catch ex As Exception
MsgBox(ex.Message)
Ed Try
End Sub


Descargar ejemplo ConexionDB_01.zip

____
Este articulo ya lo actualizamos, con la clase que agrega la funcionalidad de Procedimientos Almacenados en el link que mostramos acontinuación. Importante: haber leido primero este artículo base y luego el artículo actualizado para su mayor comprensión.

Actualización: Como invocar Procedimientos Almacenados en nuestra clase conexión
Area de Comentarios
Por frg - Fecha: 2005/12/07 10:54 AM
Roy

Algo asi estoy necesitando, ojala me puyedas auydar
Mira, tengo una aplicacion donde el usuario carga informacion, ademas tiene que dejar informacion adicional en doc wor, excel, powerpoint, fotos etc.

como le puedo hacer para conectarme a otra base de datos donde dejo los anexos espero me puedas apoyar

\\NTKALFACA02\SAC\Anexos Servidor\Carpeta\Archivos Anexos

he leido lo rferente a XML, es algo que debo implementar en mi sistema, sabes estoy usando FarPoint .NET y maneja algo de esto
saludos
Por Anónimo - Fecha: 2006/03/25 02:48 PM
MUY BUENO
Por Anónimo - Fecha: 2006/05/16 02:48 PM
ay disculpen me diran muy bruta y todo!!... pero de verdad no se como hacer que esa clase me funcione....

por favor ayudenmeeeee!!!!!.... necesito aprender asp.net YA!!!... es URGENTEEE!!!
Por Anónimo - Fecha: 2006/05/17 04:42 PM
EXCELENTE!!!!.... REALMENTE LA CLASE QUE TIENEN AQUI ES GENIAL!!!!!.... SOLO LE AGREGUE UNOS DETALLITOS Y QUEDA PERFECTAAAAAA!!!.... LOS AMO!!!....
Por royrojas - Fecha: 2006/06/28 10:59 PM
jaja, realmente me agrada saber que les funciona. me alegro mucho. espero que pronto tambien colaboren con el sitio publicando articulos.
saludos.
Por royrojas - Fecha: 2006/07/20 08:11 PM
aqui les dejo una nueva version de esta clase, ahora esta maneja procedimientos almacenados de una forma super sencilla. espero que les sirva.
http://www.dotnetcr.com/index.aspx?ID=3&art=97

saludos
Por Anónimo - Fecha: 2006/07/28 09:45 AM
gracias amigos, xcelente su ayuda... sigan adelante :
atte: d@t0
Por Anónimo - Fecha: 2006/08/04 12:54 PM
Y me serviria para conectarme de forma remota a mi base de datos de SQL Server que tengo en mi sitio web?
Les explico un poco más, yo me conecto bien desde el "Enterprise Manager" pero me han pedido que me conecte a una base de datos de SQL Server que tengo en mi servidor de hosting winnethost.com
¿Qué tendría que adaptar para que funcione y me serviriía con SQL Server 2005?
Por Anónimo - Fecha: 2006/08/06 09:21 PM
Podrías utilizar está clase sin ningun problema, yo también estoy hospedado en www.winnethost.com y accedo de forma remota a mis bases de datos utilizando esta gran clase. Aunque yo la he adaptado un poco más.
Por Anónimo - Fecha: 2006/08/14 01:15 PM
Para Roy bueno yo conozco el servidor de NTKALFAKA02 si no me equivoco es de Thomas^Betts si es asi comunicate gadiel_sandoval@hotmail.com

Sobre el asunto de lo que deseas realizar trabaje ahi un tiempo en Visual Basic .Net 2003
Por Anónimo - Fecha: 2006/08/14 01:16 PM
PARA EL SIGUIENTE MENSAJE QUE CLASE DESEAS HACER
ay disculpen me diran muy bruta y todo!!... pero de verdad no se como hacer que esa clase me funcione....

por favor ayudenmeeeee!!!!!.... necesito aprender asp.net YA!!!... es URGENTEEE!!!

gadiel_sandoval@hotmail.com
Por Anónimo - Fecha: 2006/08/15 12:44 PM
Hola mmmm tengo un problema al querer abrir la db SQL me marca el error 40 que al parecer no puede abrir un db remoto y que cheque en la configuracion de SQL, ya lo hice y al parecer tiene lo debiera permitir. Alguien sabe algo sobre esto Yo cree esta clase tal cual como lo explica el ejemplo pero al parecer no puedo abrir la base de datos ayuda please mi mail:
raul.garciaa@gmail.com
Por royrojas - Fecha: 2006/09/17 03:50 AM
pues habria que ver si tienes permisos para abrir una BD de forma remota, podria ser que esos privilegios esten cerrados por seguridad, algo que es muy comun.
Por Anónimo - Fecha: 2006/09/27 05:44 PM
POR FAVOR NECESITO MANEJAR EXCELENTEMENTE BIEN VISUAL 2005 , AUXILIOOOO

marialopezsilverio@hotmail.com
Por Anónimo - Fecha: 2006/09/27 05:46 PM
VISUAL BASIC 2005 , Estoy en proyecto de grado en la uni y eso es lo que me exigen....

marialopezsilverio@hotmail.com
Por Anónimo - Fecha: 2006/09/27 05:49 PM
POR FAVOR NECESITO MANEJAR EXCELENTEMENTE BIEN VISUAL 2005 , AUXILIOOOO

marialopezsilverio@hotmail.com
Por Anónimo - Fecha: 2006/11/02 10:34 AM
Un favor, necesito recuperar la fecha y hora que tiene el servidor que esta alojando la base de datos SQL. Alguien sabria como hacer eso?
Por Anónimo - Fecha: 2006/12/11 12:36 PM
necesito una aplicacion en asp que jale la base de datos sql server alguin podria hacerlo
Por Anónimo - Fecha: 2007/03/02 07:25 AM
PORFAVOR QUIERO ABER COMO HACER UNA BASE DE DATOS
Por Anónimo - Fecha: 2007/05/16 05:16 PM
La verdad excelente, gran trabajo haz echo, te felicito y te agradezco :D
Por Anónimo - Fecha: 2007/07/10 05:50 PM
necesito saber como le hago para dar de alta a alumnos claro con vb.net ual esel codigo para hacerlo pues tengo que hacer el abc y m para un proyecto urgente(u.huguin@hotmail.com)
Por Anónimo - Fecha: 2007/07/18 10:31 AM
me da un error en me.dgDatos.DataSource = ds.Tables(0), especificamente en "me.dgDatos"
Por royrojas - Fecha: 2007/08/26 12:39 PM
cual error te esta dando?

y aqui hay un ejemplo de la conexion con una aplicacion ASP.NET
http://www.dotnetcr.com/Libreria.aspx?art=108&tag=Aplicacion-Web-To-Do-List-o-Task-List-utilizando-ASPNET-2005-y-Ajax
Por Anónimo - Fecha: 2010/03/04 01:31 PM
GRacias por el ejemplo...
Por royrojas - Fecha: 2010/03/04 01:33 PM
pronto voy a publicar otra version de esta clase, con muchas mejoras y mejor rendimiento.
Por Anónimo - Fecha: 2011/06/14 08:04 PM
pues habria que ver si tienes permisos para abrir una BD de forma remota, podria ser que esos privilegios esten cerrados por seguridad, algo que es muy comun. RPTA:
que hago para descartar el erros como descarto que hago para habrir la seguridad
Por Anónimo - Fecha: 2011/11/16 11:54 AM
Muy buen ejemplo, aquí va la clase para MYSQL:

Imports MySql.Data.MySqlClient

Public Class clsConexion

#Region " Variables "

'Variable que utilizaremos para la conexion
Private mServidor As String
Private mBaseDatos As String
Private mUsuario As String
Private mPassword As String
'Private mConSSPI As Boolean = False

#End Region

#Region " Propiedades "

'Propiedades publicas que podrán ser accesadas
'desde el form u otra clase

Public Property Usuario() As String
Get
Return mUsuario
End Get
Set(ByVal Value As String)
mUsuario = Value
End Set
End Property

Public Property Password() As String
Get
Return mPassword
End Get
Set(ByVal Value As String)
mPassword = Value
End Set
End Property

'SSPI indica si queremos la conexion
'con Seguridad Integrada
'En el caso de que ConSSPI sea True no es necesario
'enviar los datos de usuario y password
'Public Property ConSSPI() As Boolean
' Get
' Return mConSSPI
' End Get
' Set(ByVal Value As Boolean)
' mConSSPI = Value
' End Set
'End Property

Public Property Servidor() As String
Get
Return mServidor
End Get
Set(ByVal Value As String)
mServidor = Value
End Set
End Property

Public Property BaseDatos() As String
Get
Return mBaseDatos
End Get
Set(ByVal Value As String)
mBaseDatos = Value
End Set
End Property

#End Region

'Función privada para el manejo del String de conexion
Private Function StrConexion() As String
Try
Dim strConn As String
strConn = "server=" & Servidor & "; " & _
"database=" & BaseDatos & "; " & _
"user id=" & Usuario & ";" & _
"password=" & Password
Return strConn
Catch ex As Exception
Throw ex
End Try
End Function

'Funcion a la cual se le envia el query de la
'consulta y nos retorna un DataSet
Public Function ConsultaBD(ByVal pQuery As String) As DataSet
Try
Return CreateDataSet(pQuery)
Catch ex As Exception
Throw ex
End Try
End Function

'Procesa el query y crea el dataset de la consulta
Private Function CreateDataSet(ByVal strSQL As String) As DataSet

Dim dsActividades As New DataSet
Try
'Se crea la conexion a la base de datos.
Dim sqlConn As New MySqlConnection

sqlConn.ConnectionString = Me.StrConexion

Dim sqlCmd As New MySqlCommand(strSQL, sqlConn)

Dim sda As New MySqlDataAdapter(sqlCmd)

Dim ds As New DataSet

sda.Fill(ds)

Return ds

Catch ex As Exception
Throw ex
End Try
End Function

End Class
Por Anónimo - Fecha: 2012/09/26 10:32 PM
?? Raw String Literal?????? ??????????????? ??? d-char-sequence????? ????????? ???? ???????? string liertal? ??????????????? ??? ???????????? raw string liertal????? ?????? ???? ??????? ????????????????????? ???????????? ??????????? ??????????????
Por Anónimo - Fecha: 2012/09/28 02:42 AM
nHmYmP , [url=http://kttcomnlmzar.com/]kttcomnlmzar[/url], [link=http://qfwhtmccsybd.com/]qfwhtmccsybd[/link], http://wggjvxekjxzs.com/
Por Anónimo - Fecha: 2012/09/29 02:48 PM
T7Olg7 , [url=http://zfobywetxgah.com/]zfobywetxgah[/url], [link=http://ukacxbgtqfdj.com/]ukacxbgtqfdj[/link], http://dncgeryyhjlo.com/
Ingrese su Comentario
Comentario
Para poder votar debe estar registrado en DotNetcr.com
Solo queda registrado el primer voto enviado
Voto


Últimos Recursos
thesondemon
ibarra
dsevic
Eur
jota
juanjoguardiola
PER 237
MEX 236
CRI 185
COL 117
ESP 104
ARG 87