Visual Basic.NET - Problema con código

   
Vista:

Problema con código

Publicado por Nicolas (35 intervenciones) el 17/04/2009 16:03:45
Este es el codigo que tengo para coenctarme a una base de dato M. Sql server 2005 con VS2005
y me da estos errores

1_ Error de Sintaxis en Imports
2_ El tipo SqlConnection no esta definido
3_ El tipo SqlDataReader no esta definido
4_ El tipo SqlCommand no esta definido

en todos me recomienda que lo cambie por ejemplo a SqlClient.Sqlconnection y asi con DataReader y Command. Yo los cambio a todosy le pongo comillas (comentario a la linea de imports porque si no me deja ejecutarlo) y carga el formulario pero cuando presiono el boton ingresar (btn_ingreso) me sale este error en la linea RS = Com.ExecuteReader()

Error: ExecuteReader requiere una conexión abierta y disponible
El estado actual de la cenxión es cerrada.

Espero me hayan entendido y que me puedas ayudar ya que hace rato que que estoy con este dolor cabeza....

CODIGO:

Private Sub btn_ingresar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_ingresar.Click
Imports System.Data.SqlClient

Dim Conexion As String = "Data Source=.SQLEXPRESS;Initial Catalog=gastos;Integrated Security=True"

Dim MiConexion As New SqlConnection(Conexion)
Dim Rs As SqlDataReader
Dim Com, Insert, Delete, Actualizar As New SqlCommand
Dim SQL As String

' Para saber si un registro ya existe en la BD debes hacer un select con ´'su where, 'auqnue tambien puedes hacerlo desde codigo con un while y un if dentro:

SQL = "select cod,des from gastos1 where cod='" & txt_cod.Text & "'"

Com = New SqlCommand(SQL, MiConexion)

Rs = Com.ExecuteReader()
Rs.Read()

If Rs.HasRows Then 'si encontro algo en la consulta no hacemos nada
Rs.Close()
MsgBox("La descripcion ya existe.")
Else ' si no insertamos
Rs.Close()
Insert.CommandText = "Insert into Articulos(Descripcion,ListaPorcentaje,CodCat) Values (" & txt_cod.Text & ",'" & txt_des.Text & "')"
Insert.Connection = MiConexion
Insert.ExecuteNonQuery()
End If

End Sub

Un abrazo...Nico
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:Problema con código

Publicado por Damian (824 intervenciones) el 17/04/2009 18:28:45
Y te falta abrir tu conexion: Miconexion.Open()
O sea que te quedaria:

If MiConexion.State = ConnectionState.Open Then
MiConexion.Close()
End If
MiConexion.Open()

Com = New SqlCommand(SQL, MiConexion)

' y lo que sigue........
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: Anda perfecto

Publicado por Nicolas (35 intervenciones) el 20/04/2009 23:11:09
Damian, muchas gracias por tu ayuda, anda a la perfeccion el código, si no es molestia te pregunto: Como hago para crear una clase con este codigo de coneccion y como la llamo desde otro procedimiento(Boton); la clase la llamo dentro del mismo boton o por fuera.

Un abrazo y gracias por tu ayuda

Nico.
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