none
Guardar cambios en un DataGridView RRS feed

  • Pregunta

  • Buenas.

    He creado una base de datos con SQL Server 2008, la e agregado a mi proyecto de Visual Studio 2010(Visual Basic), por defecto se agregan DataSet, BindingSource, TableAdapter, AdapterManager y bindingNavigator.

    Entro en el editor de DataSet, en las propiedades de TableAdapter expando UpdateCommand, abro CommandText y aparece el generador de consultas, relleno los campos y quedan así:

    UPDATE       Form_Clientes
    SET                Nombre = @Nombre, [Apellido º1] = @Apellidoº1, [Apellido º2] = @Apellidoº2, [D.N.I] = @D_N_I, Letra = @Letra, Domicilio = @Domicilio, Comienzo = @Comienzo, 
                             Objetivos = @Objetivos, Peso = @Peso, Altura = @Altura, Edad = @Edad, Sexo = @Sexo, Foto = @Foto
    WHERE        (Nombre = @Nombre)

    Después click en "Ejecutar consulta" se abre la ventana de "parametros de la consulta" todos los valores aparecen NULL, acepto y aparece el mensaje "La ultima consulta afecto a 0 filas" acepto, cierro el generador de consultas y depuro.

    Relleno una fila del DataGridView, la elimino y intento guardar los cambios

    Private Sub Form_ClientesBindingNavigatorSaveItem_Click(sender As System.Object, e As System.EventArgs) Handles Form_ClientesBindingNavigatorSaveItem.Click
            Me.Validate()
            Me.Form_ClientesBindingSource.EndEdit()
            Me.Form_ClientesTableAdapter.Update(Me.Base_ClientesDataSet.Form_Clientes)'ERROR:  ExecuteNonQuery: no se ha inicializado la propiedad CommandText
    
        End Sub

    Salta el error:  ExecuteNonQuery: no se ha inicializado la propiedad CommandText

    Pero la propiedad CommandText ya la tengo rellena, nose por donde tirar, cualquier ayuda es agradecida.

    Un saludo


    davidd88

    sábado, 27 de octubre de 2012 17:06

Respuestas

Todas las respuestas

  • Osea tu dices que has agregado tus dataset de manera de diseno cierto, osea lo has alado de tu proyecto de sql que te aparece a la izquierda y lo has puesto en tu aplicacion cierto, al parecer no lo estas relacionando con tu datagridview la mejor manera si vas a cargar datos en tu datagriview es hacerlo directamente por su propieda datasource desde ahi cargas los datos y puedes ejecutarlo sin problemas.

    Si no resuelves tu problema con eso hazme saber.

    Suerte!!


    Si mi respuesta te ha ayudado a resolver tus problemas, Selecciona "Proponer como respuesta"

    Blog
    J.Joaquin

    sábado, 27 de octubre de 2012 18:36
  • o sea quiere decir que estas definiendo de forma custom una query de actualziacion en el tableadapter

    Building a DAL using Strongly Typed TableAdapters and DataTables in VS 2005 and ASP.NET 2.0

    Tutorial 1: Creating a Data Access Layer

    pero no quedo claro si es una query existente, o si estas extendiendo una que ya existia

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta davidd88 martes, 30 de octubre de 2012 23:19
    sábado, 27 de octubre de 2012 18:58
  • Hola Joaquin.

    El DataGridView en la propiedad DataSource lo tengo relacionado a BiningSource.

    He creado una nueva consulta y asi tengo el botton de guardar:

    Private Sub Form_ClientesBindingNavigatorSaveItem_Click(sender As System.Object, e As System.EventArgs) Handles Form_ClientesBindingNavigatorSaveItem.Click
            Me.Validate()
            Me.Form_ClientesBindingSource.EndEdit()
            Me.Form_ClientesTableAdapter.UpdateQuery(Nombre:=Text, Apellidoº1:=Text, Apellidoº2:=Text, D_N_I:=Text, Letra:=Text, Domicilio:=Text, Comienzo:=Text, Objetivos:=Text, Peso:=Text, Altura:=Text, Edad:=Text, Sexo:=Text, Foto:=Text)
        End Sub

    Pero D_N_I , Peso, Altura , Edad, son del tipo Decimal y Foto del tipo Byte. y no e podido probar si funciona.

    Un saludo


    davidd88


    • Editado davidd88 domingo, 28 de octubre de 2012 18:40
    domingo, 28 de octubre de 2012 18:31
  • Hola Leandro.

    Gracias por los Link's. Ya los había checkeado antes en otras preguntas que encontré con similares problemas.

    Como ya le dije a Joaquin he creado una nueva consulta, antes lo intentaba desde una ya existente que se agrego por defecto al arrastrar mi tabla anteriormente creada en SQL Server. (Checkea por favor la respuesta que le mande a Joaquin)

    Un Saludo


    davidd88

    domingo, 28 de octubre de 2012 18:39
  • Pero porque D_N_I , Peso, Altura , Edad son de tipo decimal?, porque si es asi de comienzo no estas bien ya que en la unica variable que veo que puedes utilizar decimal es en peso y Altura, pero en DNI  y Edad no, Edad debe ser un tipo entero , DNI puede ser entero tambien comienza arreglando por ahi aparte de que a estos tipos de datos tienes que hacerle sus respectivas conexiones dependiendo del tipo de control que utilices.


    Si mi respuesta te ha ayudado a resolver tus problemas, Selecciona "Proponer como respuesta"

    Blog
    J.Joaquin

    lunes, 29 de octubre de 2012 2:16
  • Parece que ya lo e solucionado, no tenia escrita la consulta DELETE y por eso al salvar los datos me daba el error. 

    asi quedo:

    Private Sub Form_ClientesBindingNavigatorSaveItem_Click(sender As System.Object, e As System.EventArgs) Handles Form_ClientesBindingNavigatorSaveItem.Click
            Me.Validate()
            Me.Form_ClientesBindingSource.EndEdit()
            Me.Form_ClientesTableAdapter.Update(Me.Base_ClientesDataSet.Form_Clientes)
        End Sub
    
     Private Sub BindingNavigatorDeleteItem_Click(sender As System.Object, e As System.EventArgs) Handles BindingNavigatorDeleteItem.Click
            Me.Form_ClientesTableAdapter.Delete()
        End Sub

    • Editado davidd88 lunes, 29 de octubre de 2012 11:08
    lunes, 29 de octubre de 2012 10:44