Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/09/2010, 09:48
milomdq
 
Fecha de Ingreso: diciembre-2005
Mensajes: 50
Antigüedad: 18 años, 11 meses
Puntos: 0
C#: Actualizar base de datos desde datagrid

buenas, soy nuevo con c# y tengo un problema a la hora de actualizar la base de datos, me funciona bien al insertar 2 registros, pero cuando quiero insertar el tercero me salta error en

Código:
misqlDa.Update(miDt, clientes.DataMember);
y me dice

No se controló InvalidOperationException:
When MySqlCommandBuilder.ReturnGeneratedIdentifiers is true, MySqlCommand.UpdatedRowSource must be set to None.

a que se debe?

dejo el codigo completo:

Código:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
using System.Data.SqlClient;

namespace Milo_soft
{
    public partial class Form1 : Form
    {
        MySqlConnection Conexion = new MySqlConnection();
        MySqlDataAdapter misqlDa = new MySqlDataAdapter();
        
        DataSet miDt = new DataSet();
        BindingSource clientes = new BindingSource();
        String cadena;
        MySqlCommandBuilder cmdbuild = new MySqlCommandBuilder();
        public Form1()
        {
            InitializeComponent();
            
        }

        private void Form1_Load(object sender, EventArgs e)
        {
           
            try
            {
                
                cadena = "Server=localhost;User id=root; password=;Database=milo;";
                Conexion.ConnectionString = cadena;
                Conexion.Open();
            }
            catch (MySqlException ex)
            {
                MessageBox.Show("Error "+ Convert.ToString(ex));
            }

            string consulta = "SELECT * From clientes";
            misqlDa = new MySqlDataAdapter(consulta, Conexion);
            

            misqlDa.Fill(miDt, "clientes");
            clientes.DataSource = miDt;
            clientes.DataMember = "clientes";
            bindingNavigator1.BindingSource = clientes;

            dataGridView1.DataSource = clientes;
        }

        private void button1_Click(object sender, EventArgs e)
        {
cmdbuild = new MySqlCommandBuilder(this.misqlDa);
            misqlDa.InsertCommand = cmdbuild.GetInsertCommand();
            misqlDa.DeleteCommand = cmdbuild.GetDeleteCommand();
            misqlDa.UpdateCommand = cmdbuild.GetUpdateCommand();
            //misqlDa.Update(miDt, dataGridView1);

            misqlDa.Update(miDt, clientes.DataMember);
            //anda solo hasta 3  misqlDa.Update(miDt.Tables["clientes"]);
        }

        private void guardar_Click(object sender, EventArgs e)
        {
            
        }
    }
}
se agradecen las respuestas!