• Martes 21 de Mayo de 2024, 04:55

Autor Tema:  Executenonquery() No Funciona Vb 2005 Con Sql 2005  (Leído 3019 veces)

luiz1919

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Executenonquery() No Funciona Vb 2005 Con Sql 2005
« en: Sábado 5 de Abril de 2008, 23:51 »
0
Hola amigos, desde hace un tiempo el vb 2005 me está volviendo loco con las consultas sobre una base de datos SQL 2005.

El caso es que tengo un sencillo programa de inserciones, borrado y modificaciones. Las consultas sobre la base de datos me las hace a la perfeccion pero no consigo de ninguna manera insertar, modificar o eliminar elementos de la base de datos.

El codigo es este:

-------------------------------------------------------------------------------------

Public ConexionStr As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\DataBaseSports.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"

Public _SqlConexion As Data.SqlClient.SqlConnection
_SqlConexion = New SqlClient.SqlConnection
_SqlConexion.ConnectionString = ConexionStr
 _SqlConexion.Open()

 Query = "INSERT INTO Customers (ID_Customer,FirstName,LastName,Birthday,Address,ZIP,City,Country,DiscountCard,CardNumber) VALUES (" & MaxID & ",'" _
                                                       & txtFirstName.Text & "','" _
                                                       & txtLastName.Text & "','" _
                                                       & txtBirthday.Text & "','" _
                                                       & txtAddress.Text & "','" _
                                                       & txtZIP.Text & "','" _
                                                       & txtCity.Text & "','" _
                                                       & txtCountry.Text & "'," _
                                                       & HasDiscountCard & ",'" _
                                                       & NewCardCode & "')"
               
Dim myCommand As New SqlCommand(Query, _SqlConexion)
myCommand.ExecuteNonQuery()

If _SqlConexion.State <> ConnectionState.Closed Then
      _SqlConexion.Close()
End If


-------------------------------------------------------------------------------------

El caso es que cuando voy paso a paso, el programa no da ningun tipo de error, es decir, se comporta como si hubiera insertado los datos, pero cuando reviso la base de datos está completamente vacía. Yo ya no sé que hacer, he intentado con transacciones y demás historias pero me estoy volviendo loco y esto no funciona.

Puede alguien ayudarme por favos......GRACIAS.

junahu

  • Miembro activo
  • **
  • Mensajes: 97
    • Ver Perfil
Re: Executenonquery() No Funciona Vb 2005 Con Sql 2005
« Respuesta #1 en: Martes 15 de Abril de 2008, 02:22 »
0
has probado a no poner
"Connect Timeout=30"

mañana le hecho un vistazo a tu codigo y te digo si a mi me pasa lo mismo. Yo uso sql server 2005 y VB 2005 y no he tenido problemas.

abel_cuentas_b

  • Miembro activo
  • **
  • Mensajes: 39
    • Ver Perfil
Re: Executenonquery() No Funciona Vb 2005 Con Sql 2005
« Respuesta #2 en: Martes 15 de Abril de 2008, 03:01 »
0
hola luiz1919, te cuento que esto de las inserciones, borrados, modificaciones, es un poco mas complicado, sin querer decir que no se puede hacer, ya que te toca descriminar todas las caracteristicas de los objetos, en tu caso veo:

& txtFirstName.Text & "','" _
& txtLastName.Text & "','" _
& txtBirthday.Text & "','" _
& txtAddress.Text & "','" _
& txtZIP.Text & "','" _
& txtCity.Text & "','" _
& txtCountry.Text & "'," _
& HasDiscountCard & ",'" _
& NewCardCode & "')"

te muestro un ejemplo, que realice para un programa de agenda:

actu.Parameters.Add(New SqlParameter("@Id", SqlDbType.Int, 15, "Id"))
                actu.Parameters.Add(New SqlParameter("@Nombre", SqlDbType.NVarChar, 15, "Nombre"))
                actu.Parameters.Add(New SqlParameter("@Apellidos", SqlDbType.NVarChar, 50, "Apellidos"))
                actu.Parameters.Add(New SqlParameter("@Telefono", SqlDbType.Int, 15, "Telefono"))
                actu.Parameters.Add(New SqlParameter("@Direccion", SqlDbType.NVarChar, 50, "Direccion"))

actu.Parameters("@Id").Value = Me.TextBox1.Text
actu.Parameters("@Nombre").Value = Me.NombresTextBox.Text
actu.Parameters("@Apellidos").Value = Me.ApellidosTextBox.Text
actu.Parameters("@Telefono").Value = Me.TelefonoTextBox.Text
actu.Parameters("@Direccion").Value = Me.DireccionTextBox.Text
               
asi como lo ves, es algo que hay que analizar bastante y la verdad hay poca informacion en la web, te animo a que sigas investigando y si te puedo colaborar en algo mas nos estamos comunicando, saludos

Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: Executenonquery() No Funciona Vb 2005 Con Sql 2005
« Respuesta #3 en: Martes 15 de Abril de 2008, 03:27 »
0
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.

luiz1919

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Executenonquery() No Funciona Vb 2005 Con Sql 2005
« Respuesta #4 en: Jueves 24 de Abril de 2008, 18:52 »
0
Muchas gracias, voy a probar estos ejemplos que me habeis dejado.

Ayer estuve probando con el mismo código y, es extraño porque insertar inserta, porque puedo ver como el índice de nuevos registros en mi programa se incrementa automaticamente cuando inserto, es decir, la informacion del nuevo registro permanece en memoria en algun sitio, pero no sé donde, porque al cerrar el programa la base de datos permanece en blanco.

luiz1919

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Executenonquery() No Funciona Vb 2005 Con Sql 2005
« Respuesta #5 en: Jueves 24 de Abril de 2008, 19:38 »
0
Nada de nada. He intentado utilizar tu código abel_cuentas_b y algunos otros ejemplos y nada de nada.

Inserta, porque cuando intento insertar 2 veces lo mismo me da error de clave duplicada, pero cuando cierro el programa todo desaparece misteriosamente sin saber por qué.

Si teneis alguna idea mas, hacedmela llegar por favor. Si necesitais el programa con el código os lo puedo pasar para que le echeis un vistazo, porque yo desisto, esto es imposible.

krnl64

  • Miembro activo
  • **
  • Mensajes: 72
    • Ver Perfil
Re: Executenonquery() No Funciona Vb 2005 Con Sql 2005
« Respuesta #6 en: Miércoles 7 de Mayo de 2008, 06:23 »
0
Intenta insertar los datos asi:

Código: Text
  1.  
  2.  
  3. Query=String.Format(&#34;insert into customers values ({0},{1}....&#34;,textbox1.tex,texbox2.text...)
  4.  
  5. Mycommand.Connection= SqlConexion
  6. MyCommand.CommandText=Query
  7. MyCommand.ExecuteNonQuery
  8.  
  9.  
  10.  

Por ejemplo supon que tienes una tabla que se compone de Id, Nombre , Descrip y se llama tmp

haces esto:

Código: Text
  1.  
  2.  
  3. Query=String.Format(&#34;insert into tmp values({0},'{1}','{2}');&#34;,Txt1.Text,Txt2.Text,Txt3.Text)
  4.  
  5. Mycommand.Connection= SqlConexion
  6. MyCommand.CommandText=Query
  7. MyCommand.ExecuteNonQuery
  8.  
  9.  
  10.  

Importante el detalle de la comillas.

Como yo te puse no debe de haber problemas; Estoy harto de hacer esas cosas.
Si ves que te sigue petando, quiza se el driver que no sea el correcto, o una cadena de conexion erronea. No se decirte más.

Salu2