Foros del Web » Programación para mayores de 30 ;) » .NET »

Conectar con base de datos SQL Server [VB2005]

Estas en el tema de Conectar con base de datos SQL Server [VB2005] en el foro de .NET en Foros del Web. Saludos a todos, bueno les cuento q me quiero iniciar en el mundo de la programacion en visual basic y quiero hacerlo con una simple ...
  #1 (permalink)  
Antiguo 26/10/2009, 12:12
Avatar de ichigohollow  
Fecha de Ingreso: octubre-2009
Mensajes: 38
Antigüedad: 14 años, 6 meses
Puntos: 1
Conectar con base de datos SQL Server [VB2005]

Saludos a todos, bueno les cuento q me quiero iniciar en el mundo de la programacion en visual basic y quiero hacerlo con una simple aplicacion personal, pero dicha aplicacion necesito q se conecte a una base de datos. Lo estoy comenzando a hacer en Visual basic 2005 express edition (si esto no iba en este subforo pido me disculpen) al instalar este paquete se instalo tambien el sql server 2005 express edition, en definitiva querias saber si son tan amables de facilitarme un fragmento de codigo de ejemplo en el q haga la conexion a la base de datos (de sql server 2005)y luego guarde"X" datos en una tabla de la base de datos ... es para tomarlo de referencia para hacer mi aplicacion... ya la consulta vi como era pero el insert lo q consigo es para access o visual basic 6.0.

Gracias de antemano, saldre toda la tarde asi q si me responden con la ayuda tardare en responder
  #2 (permalink)  
Antiguo 26/10/2009, 12:17
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Hola, ichigohollow. Bienvenido al foro.

Traslado el tema a una sección que encaja mejor con tu pregunta.
Tema trasladado desde la sección de Visual Basic clásico a la sección de .NET.

Saludos.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 26/10/2009, 12:39
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 14 años, 7 meses
Puntos: 16
Respuesta: Conectar con base de datos SQL Server [VB2005]

Te dejo un link de la msdn donde encontrarás como usar DataSet, DataReaders para consultar, agregar, modificar y eliminar datos.

http: //msdn.microsoft.com/es-es/library/e80y5yhx(VS.80).aspx
  #4 (permalink)  
Antiguo 27/10/2009, 14:54
Avatar de ichigohollow  
Fecha de Ingreso: octubre-2009
Mensajes: 38
Antigüedad: 14 años, 6 meses
Puntos: 1
Respuesta: Conectar con base de datos SQL Server [VB2005]

gracias pero no me funciona lo q halle alli en msdn...

Código:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim cnn As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\SNKpassword.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True;") 'esta conexion funciona ya q con ella lleno un datagrid
        Dim tirasql As String = "INSERT INTO Datos_de_Cuenta " & _
        "(Alias_de_la_Cuenta, Nombre_de_Usuario, Password_de_la_Cuenta, Email_Relacionado, Observaciones)" & _
        " Values('aliasCuenta', 'nombreUsuario', 'passwordCuenta', 'emailCuenta', 'observacion')"
        Label6.Text = tirasql 'aqui corroboro la tira sql mientras pruebo

        cnn.Open()
        Dim command As SqlCommand = New SqlCommand(tirasql, cnn)
        Dim valida As Integer = command.ExecuteNonQuery()
        cnn.Close()
         If valida = 1 Then
        MessageBox.Show("Registro Exitoso", "Snake Password Manager", MessageBoxButtons.OK, MessageBoxIcon.Information)
        Else : MessageBox.Show("Error al guardar", "Snake Password Manager", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End If
    End Sub
bueno estta es la ultima q probe, ya q tambien probe con los dataset y adapter (bueno tanteando ya q en esa cuestion del msdn no dan un ejemplo de insertar con adapters pero igual tampoco me genero error) la cuestion es q no me da error por ningun lado y en esa estupida validacion me muestra el messagebox con registro exitoso le habia colocado un try-catch y tampoco genera nada... pero lacuestion es q el registro no se realiza en la tabla... si me pueden seguir ayudando se los agradezco...
  #5 (permalink)  
Antiguo 27/10/2009, 15:09
Avatar de Atonovich  
Fecha de Ingreso: diciembre-2002
Ubicación: ...
Mensajes: 117
Antigüedad: 21 años, 4 meses
Puntos: 0
Respuesta: Conectar con base de datos SQL Server [VB2005]

Mi sugerencia es que
1) Intenta sacar el valor de "tirasql" e intentar insertarlo en la base de datos. Así verificaras que la sentencia está correctamente armadaa
2) Intenta revisar el cnn.state, debe estar en Open
3) Mete un try... catch en el ExecuteNonQuery()

Cuéntanos cómo te fué.
__________________
" El hombre es una invención de Dios o Dios es una invención del hombre..."
  #6 (permalink)  
Antiguo 27/10/2009, 15:14
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 14 años, 7 meses
Puntos: 16
Respuesta: Conectar con base de datos SQL Server [VB2005]

Estás seguro que tu cadena de conexión funciona, porque reemplacé la conexión que usas por esta:
Código vb.net:
Ver original
  1. Dim cnn As New SqlConnection("Data Source=.\SQLEXPRESS;database=pruebas;Integrated Security=True;Connect Timeout=30;")
y el registro se grabó correctamente.
  #7 (permalink)  
Antiguo 27/10/2009, 18:06
Avatar de ichigohollow  
Fecha de Ingreso: octubre-2009
Mensajes: 38
Antigüedad: 14 años, 6 meses
Puntos: 1
Respuesta: Conectar con base de datos SQL Server [VB2005]

Cita:
Iniciado por Atonovich Ver Mensaje
Mi sugerencia es que
1) Intenta sacar el valor de "tirasql" e intentar insertarlo en la base de datos. Así verificaras que la sentencia está correctamente armadaa
2) Intenta revisar el cnn.state, debe estar en Open
3) Mete un try... catch en el ExecuteNonQuery()
Cuéntanos cómo te fué.
1) ejecute la tira sql y si registro en la base de datos
2) coloque una label y el siguiete comando
Código:
label7.text = cnn.state
despues de q ejecute la conexion y despues del cnn.Open() y la etiqueta mostro: 1
3)yo lo use asi:
Código:
Try
            cnn.Open()
            Observaciones.Text = tirasql
            Dim command As SqlCommand = New SqlCommand(tirasql, cnn)
            Dim valida As Integer = command.ExecuteNonQuery()
            cnn.Close()
            If valida = 1 Then
                MessageBox.Show("Registro Exitoso", "Snake Password Manager", MessageBoxButtons.OK, MessageBoxIcon.Information)
            Else : MessageBox.Show("Error al guardar", "Snake Password Manager", MessageBoxButtons.OK, MessageBoxIcon.Error)
            End If
        Catch ex As Exception
        End Try
y en la ventana de abajo salio esto:
Excepción del tipo 'System.Data.SqlClient.SqlException' en System.Data.dll

parece q ya nos encaminamos a encontrar el problema...
EDIT: lo siento esa exception ocurre cuando realizo la conexion con la sqlconnection q me sugirio eperedo, si lo hago con la q yo coloque anteriormente no sale ningun mensaje abajo...

Cita:
Iniciado por eperedo Ver Mensaje
Estás seguro que tu cadena de conexión funciona, porque reemplacé la conexión que usas por esta:
Código vb.net:
Ver original
  1. Dim cnn As New SqlConnection("Data Source=.\SQLEXPRESS;database=pruebas;Integrated Security=True;Connect Timeout=30;")
y el registro se grabó correctamente.
esa cadena de conexio es la del connectionstring q crea el visual basic al agregar el origen de datos ademas de q como dije antes esa conexion es la q uso para llenar un datagrid (lo cual funciona pq se llena)

la q tu me das sustituyo el nombre "pruebas" por el de mi base de datos pero cuando mando a ejecutar me dice"
Cannot open database "SNKpassword.mdf" requested by the login. The login failed.
Login failed for user 'PCSNAKE21\SolidSnake'

quiero decir q es lo mismo si uso con la extension o sin ella, ah por cierto este error ocurre cuando ejecuta el cnn.Open()

Última edición por ichigohollow; 27/10/2009 a las 18:17 Razón: error
  #8 (permalink)  
Antiguo 28/10/2009, 06:52
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 20 años, 7 meses
Puntos: 156
Respuesta: Conectar con base de datos SQL Server [VB2005]

revisa este post: http://social.msdn.microsoft.com/For...5-07e2176ef4eb


saludos
  #9 (permalink)  
Antiguo 28/10/2009, 08:38
Avatar de ichigohollow  
Fecha de Ingreso: octubre-2009
Mensajes: 38
Antigüedad: 14 años, 6 meses
Puntos: 1
Respuesta: Conectar con base de datos SQL Server [VB2005]

Cita:
Iniciado por freegirl Ver Mensaje
revisa este post: "foros del web no me dejaba quotear tu url"


saludos
gracias por la ayuda aunq no use nada de lo q decia en ese tema (aunq por ello llegue a la solucion)... ya q los problemas q presentaban ellos no era como el mio... a mi no se me generaba ningun error ni excepcion de conexion, pero por no dejar cuando iba a tratar de aplicar alguna de las soluciones q dijeron alli me meti por donde no era y me tope con algo q me dio curiosidad ... en la barar de herramientas (explorador de base de datos para ser mas especifico)del visual basic le di boton derecho sobre mi base de datos y luego propiedades (buscaba donde cambiar la autenticacion para quitar q sea por windows y agregar q sea por usuario de sql server cosa q al final no realice), en la ventanita q aparecio "cadena de conexion" con un valor un poco distinto del q me da el diseñador de dataset... esta diferencia radica en:
Código:
Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\SNKpassword.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True;
esa era la q usaba antes... la q me soluciono el problema sustituye el "|DataDirectory|" por la direccion exacta en el disco iniciando desde la raiz
en otras palabras es asi
Código:
Data Source=.\SQLEXPRESS;AttachDbFilename=C:\programacion\Visual Studio 2005\Projects\Snake Password Manager\Snake Password Manager\SNKpassword.mdf;Integrated Security=True;Connect Timeout=30;
gracias por el interes de todos en ayudar desinteresadamente...

Última edición por ichigohollow; 28/10/2009 a las 08:45
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:11.