Visual Basic.NET - Ingresar datos a BD Sql Server 7.0

 
Vista:

Ingresar datos a BD Sql Server 7.0

Publicado por Nicolas (35 intervenciones) el 14/04/2009 00:46:19
Hola amigos, yo se que lo que voy a preguntar para muchos sea una estupides pero recien comienzo con este lenguaje y la verdad cambia mucho del 6.0 y como quiero dejarlo atras estoy empezando de cero.

Consulta:

Tengo un form con una caja de texto para ingresar el codigo (txt_cod) y otra para ingresar la descripcion (txt_des), necesito saber como es la forma para ingresar estos datos hacer click en un boton a la tabla gastos de Sql server 7.0.
Yo intente hacer algo y quedo así (no se rian che...)

Tambien necesito saber como hacer para que me diga cuando el usuario (supongamos que este código anda) ingrese un registro que ya existe.

Public Class Form1

Private Sub cdm_ingresar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cdm_ingresar.Click
Dim numero As Integer
Dim descripcion As String
numero = Val(Me.txt_cod.Text)
descripcion = Me.txt_des.Text
Imports System.Data.OleDb
Private cn as new OleDb.OleDbconnection(Provider=SQLOLEDB;Data Source=NICOLAS;Integrated Security=SSPI;Initial Catalog=gastos)
INSERT INTO gastos VALUES (numero ; descripcion)


End Sub
End Class

Gracias a todos...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:Ingresar datos a BD Sql Server 7.0

Publicado por Damian (824 intervenciones) el 14/04/2009 18:56:18
Bueno yo lo tengo realizado con SQL 2005 que es lo mismo, cambia algunas cosas en la conexion:

'Toda esta declaracion la podrias poner en una clase y sus variables como
'publicas, asi solo haces una solo declaracion y la llamas de donde quieras.
Imports System.Data.SqlClient

Dim Conexion As String = "Data Source=.SQLEXPRESS;Initial Catalog=tuBaseDeDatos;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 campo1,campo2 from tabla where Campo1='" & txt_des.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
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:Ingresar datos a BD Sql Server 7.0

Publicado por Nicolas (35 intervenciones) el 14/04/2009 20:51:39
Gracias Damian lo voy a probar y te cuento como me fue.

La unica duda es para que escribis esta linea

SQL = "select campo1,campo2 from tabla where Campo1='" & txt_des.Text &"'"

Un abrazo...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

RE:Ingresar datos a BD Sql Server 7.0

Publicado por Damian (49 intervenciones) el 14/04/2009 21:45:47
Y justamente para ver si lo que ingreso el usuario es igual a tu campo de la BD de no ser asi inserto y si no le muestro un mensaje.
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:Ingresar datos a BD Sql Server 7.0

Publicado por Nicolas (35 intervenciones) el 15/04/2009 21:47:34
Si, me parecia que era eso pero me perdio porque dice txt_des y yo uso como clave primaria txt_cod.

Ahora lo estoy por probar y te cuento.

Saludos
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

No funciona el codigo

Publicado por Nicolas (35 intervenciones) el 16/04/2009 01:29:11
Damian, ahora tengo la base de dato en MS SQL Server 2005 y aun así no funciona:

este es el código modificado con mi base de dato (gastos) y tabla (gastos1):

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

Los erroe que me da son:
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 hayas entendido y que me puedas ayudar ya que hace mas de cincoras seguidas que estoy con este dolor cabeza....

Un abrazo...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