Update a Base de Datos MongoDB con Csharp

Saludos amig@s
nuevamente con un nuevo articulo relacionado a las Bases de datos NOSQL, y en esta ocasión continuaremos con un ejemplo donde explicaré como hacer un update contra una base de datos MongoDb, para ello les recomiendo que previamente hayan leído los artículos anteriores:


Entonces continuando con la aplicacion anterior ahora vamos a crear un evento en el datagridview con el cual seleccionaremos solo una fila, creamos el evento CellContentClick, y colocamos el siguiente código.

private Cliente _clienteSeleccionado = null;

private void dgvClientes_CellContentClick(object sender, DataGridViewCellEventArgs e)
 {
  _clienteSeleccionado = (Cliente)dgvClientes.Rows[e.RowIndex].DataBoundItem;
  txtDni.Text = _clienteSeleccionado.Dni;
  txtNombre.Text = _clienteSeleccionado.Nombre;
  txtApellido.Text = _clienteSeleccionado.Apellido;

}

Con ello tendremos una funcionalidad como la siguiente.

Ahora lo que haremos será modificar alguna dato y dar click en el botón Grabar para lo cual también debemos hacer algunos cambios en el código del botón Grabar para que funcione como Guardar para Crear uno Nuevo o para actualizar uno ya existente que es lo que para este ejemplo queremos.
Dentro del IF es todo el código necesario para ingresar un nuevo cliente
Dentro del ELSE es todo el código necesario para modificar los datos de un cliente seleccionado en el datagridview.
private void btnGrabar_Click(object sender, EventArgs e)
{
  var connectionString = "mongodb://localhost";
  var client = new MongoClient(connectionString);
  var server = client.GetServer();
  var database = server.GetDatabase("dbClientes");
  server.Connect();//Conectamos con la Base de Datos.

  var collection = database.GetCollection<Cliente>("entities");
  if (_clienteSeleccionado ==null )
  {
    var entity = new Cliente { Dni = txtDni.Text, Nombre = txtNombre.Text, Apellido = txtApellido.Text };//Creamos Objeto
    collection.Insert(entity); //Insertamos objeto en la base de datos
    MessageBox.Show("Datos grabados correctamente");
  }
  else
  {
    var query = Query<Cliente>.EQ(x => x.Id,_clienteSeleccionado.Id ); //Preparamos una consulta para buscar a un cliente en base a su ID generado por MongoDb
    var entity = collection.FindOne(query); //Buscamos en la coleccion al objeto Cliente.
    entity.Dni = txtDni.Text;  // seteamos el Dni
    entity.Nombre = txtNombre.Text; //seteamos el nombre
    entity.Apellido = txtApellido.Text; //seteamos el apellido
    collection.Save(entity); //grabamos los cambios en la base de datos
    MessageBox.Show("Datos actualizados correctamente");
  }
  LeerDatosMongoDb(); //Cargamos el datagridview para ver los cambios
}

El resultado seria el siguiente


Bueno espero que les haya servido, y como siempre dejo este código para que lo descarguen desde este link. AQUI.

Comments

Popular posts from this blog

Error al Iniciar Oracle SQL Developer 11g - Unable to find Java Virtual Machine

Como Mantener el Scroll despues de un PostBack ASP.net ( As Maintain Scroll after a PostBack ASP.net )

How to run ng serve in a different port
Como ejecutar ng serve en un puerto diferente