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
Post a Comment