estoy iniciando en vb.net y cuando escribo la conexion a la db, me da el
error del asunto. Que otras cosas debo tener en cuenta para poder conectar
una DB desde VBNET ??
Hice lo siguiente :
Public Function LeoDB(ByVal myQuery As String) As Data.DataSet
Dim conn As System.Data.SqlClient.SqlConnection
conn = New System.Data.SqlClient.SqlConnection
conn.ConnectionString = "Server=MiServer; DataBase=MiBase; user id=user;
password='pass'"
conn.Open()
Dim adapter As New System.Data.SqlClient.SqlDataAdapter
adapter.SelectCommand = New System.Data.SqlClient.SqlCommand(myQuery, conn)
dim ds As New System.Data.DataSet
adapter.Fill(ds)
conn.Close()
end function
Esto esta en un modulo, luego en el Form hago LeoDB(cadena) y cargo un
Dataset (al menos fue lo que quise hacer), pero dio el error
Gracias
--
atte
Claudio
> conn.ConnectionString = "Server=MiServer; DataBase=MiBase; user id=user;
> password='pass'"
Prueba con esto:
conn.ConnectionString = " Data Source=MiServer; Initial Catalog=MiBase; user
id=user; password=pass "
Alan Salazar
> estoy iniciando en vb.net y cuando escribo la conexion a la db, me da el
> error del asunto. Que otras cosas debo tener en cuenta para poder
> conectar una DB desde VBNET ??
Hola, Claudio:
Si por una casualidad tienes referenciadas en tu proyecto los siguiente
ensamblados o bibliotecas
System.Data
System.Data.SqlClient
elimina la referencia al ensamblado «System.Data.SqlClient», que en
principio no es necesaria para el código fuente que ejecuta la función
«LeoDB».
¡OJO! Me estoy refiriendo a las REFERENCIAS del proyecto, NO a cualquier
instrucción «Imports» que aparezca al comienzo del módulo para importar los
idénticos espacios de nombres.
Aprovecho la respuesta para indicarte que la función «LeoDb» deberá de
devolver un valor del tipo «DataSet», porque de lo contrario, de nada te va
a servir llamar a la citada función.
Si utilizas Visual Basic 2005 ó 2008 dicha función se podría quedar de la
siguiente manera.
Al comienzo del módulo, importamos los siguientes espacios de nombre, que no
tienen nada que ver con las referencias del proyecto:
Imports System.Data
Imports System.Data.SqlClient
Public Function LeoDB(ByVal myQuery As String) As DataSet
Using conn As New SqlConnection
conn.ConnectionString = _
"Server=MiServer;" & _
"DataBase=MiBase;" & _
"user id=user;" & _
"password=pass"
Try
Dim adapter As New SqlDataAdapter(myQuery, conn)
Dim ds As New DataSet
adapter.Fill(ds)
' Devolvemos el objeto DataSet
'
Return ds
Catch ex As Exception
' Se ha producido un error
'
Return Nothing
End Try
End Using
End Function
Si aún sigues utilizando VB 2002 ó 2003, entonces no puedes utilizar la
instrucción «Using»; tendrías que declarar la variable con la instrucción
«Dim»:
Dim conn As New SqlConnection
Si la consulta SQL de selección afecta a una sola tabla, no es necesario
abrir y cerrar expresamente la conexión, porque de abrirla y cerrarla se
encargará el objeto DataAdapter.
Un saludo
--
Enrique Martínez
[MS MVP - VB]
Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.