Indice del Articulo
Insertar, modificar, eliminar y consultar datos en MySQL y C# – Parte 1
Bienvenidos a un nuevo artículo relacionado a C# y la base de datos MySQL, anteriormente aprendimos a conectarnos a MySQL desde C# puedes ver Aquí el post, en esta ocasión aprenderemos a insertar registros desde C# hacia la base de datos MySQL, pues ya teniendo listas las conexiones tenemos las condiciones para poder interactuar con la base de datos y realizar un CRUD (Create, Read, Update and Delete).
En la programación en C# hemos creado una clase llamada BdComun esta a su vez contiene un método llamado ObtenerConexion el cual tiene la cadena de conexión, entonces ahora lo que vamos hacer sera crear un nueva clase llamada Cliente que básicamente en programación Orientada a Objetos representaría un objeto cliente, en este sentido debe tener datos relacionados al cliente, en esa clase debemos agregar los mismos campos que tenemos en la tabla Clientes de la base de datos en MySql.
En la programación en C# hemos creado una clase llamada BdComun esta a su vez contiene un método llamado ObtenerConexion el cual tiene la cadena de conexión, entonces ahora lo que vamos hacer sera crear un nueva clase llamada Cliente que básicamente en programación Orientada a Objetos representaría un objeto cliente, en este sentido debe tener datos relacionados al cliente, en esa clase debemos agregar los mismos campos que tenemos en la tabla Clientes de la base de datos en MySql.
Este seria el código de la clase Cliente que sera agregada en C#:
public class Cliente
{
public int Id { get; set; }
public string Nombre { get; set; }
public string Apellido { get; set; }
public string Fecha_Nac { get; set; }
public string Direccion { get; set; }
public Cliente() { }
public Cliente(int pId, string pNombre, string pApellido, string pFecha_Nac, string pDireccion)
{
this.Id = pId;
this.Nombre = pNombre;
this.Apellido = pApellido;
this.Fecha_Nac = pFecha_Nac;
this.Direccion = pDireccion;
}
}
Como ven tiene cinco propiedades que son equivalentes a los cinco campos de la tabla, al igual tiene un constructor vació public Cliente() { } el cual se utiliza para crear los objetos ya que de esta forma no recibe parámetros y podemos invocarlo sin problemas, por otra parte tenemos otro constructor el cual tiene cinco parámetros, podemos interpretar que los parámetros nos servirán para enviar o trasportar los datos hacia las propiedades y posteriormente usarlo donde nosotros lo necesitemos.
Insertar datos en MySQL desde C#
Lo siguiente que haremos sera agregar un nueva clase ahora le llamaremos ClientesDAL esta clase tendrá métodos que nos ejecutaran comandos hacia MySQL los basicos: Insert, delete, update y select, por el momento vamos añadir el método agregar el cual insertara un cliente (registro) a la Base de Datos, la clase en C# quedaría así:
public class ClientesDAL
{
public static int Agregar(Cliente pCliente)
{
int retorno = 0;
MySqlCommand comando=new MySqlCommand(string.Format(«Insert into clientes (Nombre, Apellido, Fecha_Nacimiento, Direccion) values (‘{0}’,'{1}’,'{2}’, ‘{3}’)», pCliente.Nombre, pCliente.Apellido, pCliente.Fecha_Nac, pCliente.Direccion), BdComun.ObtnerCOnexion());
retorno = comando.ExecuteNonQuery();
return retorno;
}
}
Ya teniendo esto, nos dirigimos al formulario y programamos en el evento clic del botón Guardar, lo que se debe hacer es crear un cliente, es decir llenar sus respectivas propiedades y ejecutar el método agregar para que nos inserte el cliente.
Formulario diseñado en C# |
El código que debemos agregar en el botón guardar (evento clic) sera el siguiente:
private void btnGuardar_Click(object sender, EventArgs e)
{
Cliente pCliente = new Cliente();
pCliente.Nombre = txtNombre.Text.Trim();
pCliente.Apellido = txtApellido.Text.Trim();
pCliente.Fecha_Nac = dtpFechaNacimiento.Value.Year + «/» + dtpFechaNacimiento.Value.Month + «/» + dtpFechaNacimiento.Value.Day;
pCliente.Direccion = txtDireccion.Text.Trim();
int resultado = ClientesDAL.Agregar(pCliente);
if (resultado > 0)
{
MessageBox.Show(«Cliente Guardado Con Exito!!», «Guardado», MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
MessageBox.Show(«No se pudo guardar el cliente», «Fallo!!», MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
De seguro surgen dudas, para que todo quede mas claro acá les dejo el vídeo explicativo, en el que implemento la programación:
Link del vídeo: www.youtube.com/watch?v=IT_R46g7YTk (Dale Like)
Siguiente artículo: Consultar registros en MySQL desde C#
Todos los Artículos:
muy buenos tus tutoriales
por que cuando ya tengo asignado el nombre del textboxluego.Text; y sale no se puede convertir en el el contexto actual de string a double por que ayudame!!!1 es cuando asigno los botones del from
hola que tal corro el programa pero tengo un error en la clase clientes dall, el error lo marca en el metodo agregar
Error 1 Inconsistent accessibility: parameter type 'WindowsFormsApplication3.clientes' is less accessible than method 'WindowsFormsApplication3.clientesdal.Agregar(WindowsFormsApplication3.clientes)' c:usersmarcodocumentsvisual studio 2010ProjectsWindowsFormsApplication3WindowsFormsApplication3
que tal amigo.. muy buena explicacion… podrias hacer un ejemplo de como hacer un LOGIN conectado con mysql. seria de mucha ayuda.. te lo agradeceria muchisimo
Muchísimas gracias 😀 he estado buscando esto por 2 días, me ha funcionado de maravilla, gracias.
buenas disculpa no tienen ejercicios ya resueltos de esto?
Hola, el blog me parece muy bueno. Los ejemplos estan super bien, quizas si explicaras un poco más el código( Logica) el blog seria excelente. Saludos desde Nicaragua.
Hola.
Lo primero es darte las gracias por tus tutoriales, me están ayudando mucho.
Y lo segundo, una pregunta:
En el código del botón guardar ¿como pondríamos esta parte
pCliente.Nombre = txtNombre.Text.Trim();
si en lugar de un string estamos añadiendo un int?
Un saludo.
Revisa si el metodo lo declarastes public si no declaralo public
Buenas Franklin me ha salido un error aqui
retorno = comando.ExecuteNonQuery();
Agradeceria mucho si pudieras ayudarme.
pCliente.Nombre = Int32.Parse(txtNombre.Text);
buenas frank, En el código del botón guardar ¿como pondríamos esta parte
pCliente.Nombre = Int32.Parse(txtNombre.Text); que capture unos 10 o mas digitos (enteros).
buenos días frank, en el código del botón guardar me sale una excepción (Field 'Id' doesn't have a default value)
me dice "no se controlo mysql exepcion" en esta parte del codigo
retorno = comando.ExecuteNonQuery();
Por favor dime si ya lo pudiste resolver y como le hiciste
Ya lo pudiste resolver? de ser asi me podrias decir que hiciste? por favor
Hola porque no puedo ingresar id del cliente frank saludos
como le hiciste para resolverlo
si lo pudieron resolver??
muy bueno el tutorial
Hola, la verdad me han parecido super interesantes tus tutoriales y queria preguntarte que si no tienes algun repositorio donde pueda ver todo el código
pCliente.Nombre = txtNombre.Text.Trim();
en esta parte me sale un error, dice que "Text" no contiene una definicion, alguien me puede ayudar?
a los textbox en sus propiedades name-> coloca txtNombre …… asi con todos y listo
Este comentario ha sido eliminado por el autor.
Este comentario ha sido eliminado por un administrador del blog.
Amigos, cualquier error en la linea: "retorno = comando.ExecuteNonQuery();"
Se debe a problemas en ejecutar el código de Mysql, sugiero verificar el código sql y la parte de en la que enviamos los datos para insertar.
Saludos
Hola que tal, tengo ese problema y no se como resolverlo ¿podrias orientarme?
Amigo te sugiero que revises la linea del insert, de seguro algun caracter este incorrecto.
Me esta dando un error en este punto:
conectar.Open();
Me indica el siguiente error: Excepción no controlada del tipo ‘MySql.Data.MySqlClient.MySqlException’ en MySql.Data.dll
que puedo hacer para corregirlo
Aun no lo has resuelto?
Escríbeme a mi pagina de facebook: https://www.facebook.com/MrfranklingrTutoriales