Visual Basic.NET - SqlServer

 
Vista:

SqlServer

Publicado por José Óscar (21 intervenciones) el 20/01/2004 11:32:50
Hola estoy escribiendo un programa en visual basic.net, y al querer conectarme a la base de datos:

Dim dir_bd As String
dir_bd = "Data Source= " & "My Documents\bdxml.sdf"
Dim conexion As SqlConnection = New SqlConnection(dir_bd)
Dim sentencia As SqlCommand = conexion.CreateCommand()
sentencia.CommandText = "SELECT * FROM tabla_tareas"
conexion.Open()

me dá este error:
Excepción no controlada del tipo 'System.Data.SqlClient.SqlException' en System.Data.SqlClient.dll

Previamente ya había declarado:
Imports System
Imports System.Data
Imports System.Data.SqlClient
Imports Microsoft.VisualBasic
Muchas gracias.
Un saludo.


Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:SqlServer

Publicado por Uninauta (15 intervenciones) el 20/01/2004 14:14:58
Pon un try catch para obtener un detalle del error ("error en la sentencia sql", "no se encontro la base de datos"... etc. ) Aunque a primera vista parecen faltar datos para establecer la conexion... (nombre de usuario o password si los tiene, provider si lo necesita...)
Para trabajar con sql server personalmente te recomendaria que utilizaras una conexion ODBC. Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 153
Ha aumentado 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

RE:SqlServer

Publicado por Yamil Bracho (631 intervenciones) el 20/01/2004 15:16:53
Encierra la apertura de la conexion en un bloque Try..Catch. Asi

Dim conexion As SqlConnection = New SqlConnection(dir_bd)
Dim sentencia As SqlCommand = conexion.CreateCommand()
sentencia.CommandText = "SELECT * FROM tabla_tareas"
Try
conexion.Open()
Catch ex As Exception
MessageBox.Show( ex.ToString())
End Try

Con respecto a usar el namespace SqlServer o no, la documentacion dices que uses OleDb si se trata de SQl Server 6.0 o menor y que uses el Sql a partir de la version 7 y de hecho es el mas optimo de todos los accesos a cualquier BD
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

RE:SqlServer

Publicado por Jose Oscar (21 intervenciones) el 23/01/2004 12:13:20
El OLEDB no puedo utilizarlo ya que no me aparece en la lista de referencias, yo estoy utilizando un proyecto SMART DEVICE APPLICATION.
De todas formas me dá el error: System.data.sqlClient.sqlexception:Sqlexception , una vez puesto el try.
Muchas gracias.
Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:SqlServer

Publicado por Uninauta (15 intervenciones) el 23/01/2004 15:26:32
Es que en realidad la captura del error deberia ser asi:

Dim conexion As SqlConnection = New SqlConnection(dir_bd)
Dim sentencia As SqlCommand = conexion.CreateCommand()
dim ControlErrores as string

sentencia.CommandText = "SELECT * FROM tabla_tareas"
Try
conexion.Open()
Catch ex As Exception
ControlErrores = ex.Source & " " & ex.TargetSite.ToString & " " & ex.GetBaseException.ToString()

MessageBox.Show( ex.ToString())
End Try

A continuacion te muestro un ejemplo del nivel del detalle de errores que te da este codigo: (es un ejemplo real, de manera que algunos detalles en particular quiza no te interesen, pero si te centras en el primer parrafo veras cual fue el error y en el ultimo tienes en que linea de que formulario se produjo) sigue en el proximo mensaje
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

RE:SqlServer

Publicado por Uninauta (15 intervenciones) el 23/01/2004 15:27:50
odbcjt32.dll Void HandleError(IntPtr, SQL_HANDLE, RETCODE) Microsoft.Data.Odbc.OdbcException: ERROR [42000] [Microsoft][Controlador ODBC Microsoft Access] Error de sintaxis en la expresión de consulta 'Usuarios.IdGrupoUsuarios = GruposUsuarios.IdGrupoUsuarios and DesUsuario like %'dia'%'.
at Microsoft.Data.Odbc.OdbcConnection.HandleError(IntPtr hHandle, SQL_HANDLE hType, RETCODE retcode)
at Microsoft.Data.Odbc.OdbcCommand.ExecuteReaderObject(CommandBehavior behavior, String method)
at Microsoft.Data.Odbc.OdbcCommand.ExecuteReader(CommandBehavior behavior)
at Microsoft.Data.Odbc.OdbcCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
at System.Data.Common.DbDataAdapter.Fill(Object data, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable)
at MasterPos.frmVistaUsuarios.Actualizar() in C:\Documents and Settings\calemani\Mis documentos\Visual Studio Projects\MasterPos\VistaUsuarios.vb:line 311
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error en el codigo que mostre

Publicado por Uninauta (15 intervenciones) el 23/01/2004 15:38:56
El msgbox deberia mostrar la variable ControlErrores:

msgbox(ControlErrores)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar