Sei sulla pagina 1di 9

[Generalidades de cdigo]

Creacin de un sistema ABC


Altas - Bajas - Cambios
Generalidades de cdigo

-SQL Server 2005 Express Ed. -Microsoft Visual C# 2008

Por: Juan Francisco Gonzlez Reyes 07230471 ITSL Durango, Mxico

[Generalidades de cdigo]

Cmo hacer esperar al SPLASH SCREEN antes de iniciar el sistema?


Existen innumerables maneras para hacer esperar un tiempo al SPLASH SCREEN antes de iniciar el sistema. En este caso utilizamos un progressBar y un timer:
private void timer1_Tick(object sender, EventArgs e) { progressBar1.Value++; if (progressBar1.Value == 100) { timer1.Stop(); Form2 ventana = new Form2(); this.Hide(); ventana.Show(); } }

Cmo hacer el efecto botn con un pictureBox?

Simplemente en los eventos MouseMove y MouseLeave del pictureBox aadimos el siguiente cdigo:
private void pictureBox1_MouseMove(object sender, MouseEventArgs e) { pictureBox1.Size = new Size(120, 120); label1.Text = "Loggin del Sistema";

private void pictureBox1_MouseLeave(object sender, EventArgs e) { pictureBox1.Size = new Size(100, 100); }

[Generalidades de cdigo]

Cmo crear la conexin a la base de datos?


Primeramente deberemos tener la base de datos adjuntada al motor de base de datos. Despus, dentro del cdigo del Program.cs deberemos declarar la variable global cadena

Por qu? Porque en distintas partes del programa se necesitar tal cadena.
using using using using System; System.Collections.Generic; System.Linq; System.Windows.Forms;

namespace GoldenStar { public class Global { public static string cadena = "Data Source=Dino\\SQLEXPRESS;Initial Catalog=Negocio;Integrated Security=True"; } static class Program { /// <summary> /// Punto de entrada principal para la aplicacin. /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } } }

Donde: Dino\\SQLEXPRESS es el nombre del motor de Base de Datos Negocio es el nombre de la base de datos a la que se quiere accesar

[Generalidades de cdigo]

Dentro del cdigo en C# deberemos agregar la librera SQLCLIENT


using System.Data.SqlClient;

Debajo, dentro del cdigo de la clase Form, deberemos declarar la variable con como una conexin SQL:
SqlConnection con;

Dentro del evento que deseemos, agregaremos el siguiente cdigo:


con = new System.Data.SqlClient.SqlConnection(); con.ConnectionString = Global.cadena; try { con.Open(); MessageBox.Show("Conexin realizada"); } catch (Exception) { MessageBox.Show("Conexin fallida"); }

Cmo interactuar entre ventanas?


Si queremos abrir una nueva form en tiempo de ejecucin, utilizaremos un cdigo como el siguiente:
private void pictureBox2_3_Click(object sender, EventArgs e) { Form11 ventana = new Form11(); ventana.ShowDialog(); }

Si queremos cerrar el Form en ejecucin se escribe:


this.Close();

Si queremos ocultar el Form en ejecucin se escribe:


this.Hide();

[Generalidades de cdigo]

Cmo verificar si existe X usuario?


Se usa una conexin SQL como la descrita al principio del documento Se utiliza un comando SQL SELECT Se utiliza el cdigo de la siguiente manera:

private void entrar() { Global.usuario = textBox1.Text; con = new System.Data.SqlClient.SqlConnection(); con.ConnectionString = Global.cadena; try { //busco si existe tal usuario string buscar = "SELECT * from usuarios where usuario= '" + textBox1.Text + "'"; SqlCommand ORDEN = new SqlCommand(buscar, con); ORDEN.Connection.Open(); ORDEN.ExecuteNonQuery(); SqlDataReader reader = ORDEN.ExecuteReader(); reader.Read(); //si SI existe el usuario if (reader.HasRows) { //si SI coincide la contrasea if (leerClave().Trim() == textBox2.Text) { if (Global.modo == "login") { Form4 ventana = new Form4(); ventana.Show(); this.Close(); } if (Global.modo == "agregar") { Form18 ventana = new Form18(); ventana.Show(); this.Close(); } if (Global.modo == "editar") { Form19 ventana = new Form19(); ventana.Show(); this.Close(); } } //si NO coincide la contrasea else { MessageBox.Show("La contrasea es incorrecta"); }

[Generalidades de cdigo]
} //si NO existe el usuario else { MessageBox.Show("El usuario proporcionado no existe"); } } catch { MessageBox.Show("Conexion fallida"); } }

Cmo leer informacin de la Base de Datos?


Se usa una conexin SQL como la descrita al principio del documento Se utiliza un comando SQL SELECT En este ejemplo, la funcin lee la clave del usuario y la retorna dentro de la variable cadena

//funcion que lee la clave del usuario en la BD y devuelve un string con su valor private string leerClave() { con = new System.Data.SqlClient.SqlConnection(); con.ConnectionString = Global.cadena; string cadena = ""; SqlCommand ORDEN5 = new SqlCommand("SELECT clave from usuarios where usuario='"+textBox1.Text+"'", con); ORDEN5.Connection.Open(); ORDEN5.ExecuteNonQuery(); SqlDataReader reader5 = ORDEN5.ExecuteReader(); reader5.Read(); try { if (reader5.HasRows) { cadena = reader5.GetString(0); } } catch (Exception) { cadena = ""; } reader5.Close(); ORDEN5.Connection.Close(); return cadena; }

[Generalidades de cdigo]

Cmo dar de ALTA un registro?


Se usa una conexin SQL como la descrita al principio del documento Se utiliza un comando SQL INSERT En este ejemplo, se intenta aadir un cliente a la base de datos
if (MessageBox.Show("Aadir el nuevo registro a la Base de Datos?", "Aadir nuevo cliente", MessageBoxButtons.YesNo) == DialogResult.Yes) { con = new System.Data.SqlClient.SqlConnection(); con.ConnectionString = Global.cadena; try { string q = "insert into clientes(id_cte,nombre,rfc,tel1,tel2,calle,num_ext,num_int,cp,colonia,ciu dad,estado,pais) values(@id_cte,@nombre,@rfc,@tel1,@tel2,@calle,@num_ext,@num_int,@cp,@col onia,@ciudad,@estado,@pais)"; SqlCommand ORDEN = new SqlCommand(q, con); ORDEN.Parameters.Add(new SqlParameter("@id_cte", textBox11.Text)); ORDEN.Parameters.Add(new SqlParameter("@nombre", textBox1.Text)); ORDEN.Parameters.Add(new SqlParameter("@rfc", textBox2.Text)); ORDEN.Parameters.Add(new SqlParameter("@tel1", textBox3.Text)); ORDEN.Parameters.Add(new SqlParameter("@tel2", textBox4.Text)); ORDEN.Parameters.Add(new SqlParameter("@calle", textBox5.Text)); ORDEN.Parameters.Add(new SqlParameter("@num_ext", textBox7.Text)); ORDEN.Parameters.Add(new SqlParameter("@num_int", textBox6.Text)); ORDEN.Parameters.Add(new SqlParameter("@cp", textBox8.Text)); ORDEN.Parameters.Add(new SqlParameter("@colonia", textBox9.Text)); ORDEN.Parameters.Add(new SqlParameter("@ciudad", textBox10.Text)); ORDEN.Parameters.Add(new SqlParameter("@estado", textBox12.Text)); ORDEN.Parameters.Add(new SqlParameter("@pais", textBox13.Text)); ORDEN.Connection.Open(); ORDEN.ExecuteNonQuery(); ORDEN.Connection.Close(); MessageBox.Show("Nuevo registro agregado a la Base de Datos"); this.Close(); } catch (Exception) { MessageBox.Show("Conexin fallida"); } }

[Generalidades de cdigo]

Cmo dar de BAJA un registro?


Se usa una conexin SQL como la descrita al principio del documento Se utiliza un comando SQL DELETE En este ejemplo, se intenta eliminar un cliente de la base de datos
private void button1_Click(object sender, EventArgs e) { con = new System.Data.SqlClient.SqlConnection(); con.ConnectionString = Global.cadena; try { string buscar = "SELECT * from clientes where id_cte= '" + textBox1.Text + "'"; SqlCommand ORDEN = new SqlCommand(buscar, con); ORDEN.Connection.Open(); ORDEN.ExecuteNonQuery(); SqlDataReader reader = ORDEN.ExecuteReader(); reader.Read(); if (reader.HasRows) { con2 = new System.Data.SqlClient.SqlConnection(); con2.ConnectionString = Global.cadena; if (MessageBox.Show("Seguro que desea eliminar la cuenta " + textBox1.Text + "?", "Confirmar", MessageBoxButtons.YesNo) == DialogResult.Yes) { string eliminar = "DELETE FROM clientes WHERE id_cte='" + textBox1.Text + "'"; SqlCommand ORDEN2 = new SqlCommand(eliminar, con2); ORDEN2.Connection.Open(); ORDEN2.ExecuteNonQuery(); MessageBox.Show("Cuenta eliminada"); textBox1.Text = ""; con.Close(); con2.Close(); this.Close(); } else { MessageBox.Show("Cuenta no eliminada"); } } else { MessageBox.Show("La cuenta proporcionada no existe"); } } catch { MessageBox.Show("Conexion fallida"); } }

[Generalidades de cdigo]

Cmo ACTUALIZAR un registro?


Se usa una conexin SQL como la descrita al principio del documento Se utiliza un comando SQL UPDATE En este ejemplo, se intenta actualizar la informacin de un cliente de la base de datos
if (MessageBox.Show("Modificar registro de la Base de Datos?", "Modificar cliente", MessageBoxButtons.YesNo) == DialogResult.Yes) { con = new System.Data.SqlClient.SqlConnection(); con.ConnectionString = Global.cadena; try { string q = "update clientes set nombre=@nombre,rfc=@rfc,tel1=@tel1,tel2=@tel2,calle=@calle,num_ext=@num_e xt,num_int=@num_int,cp=@cp,colonia=@colonia,ciudad=@ciudad,estado=@estado ,pais=@pais where id_cte=@id_cte"; SqlCommand ORDEN = new SqlCommand(q, con); ORDEN.Parameters.Add(new SqlParameter("@id_cte", textBox11.Text)); ORDEN.Parameters.Add(new SqlParameter("@nombre", textBox1.Text)); ORDEN.Parameters.Add(new SqlParameter("@rfc", textBox2.Text)); ORDEN.Parameters.Add(new SqlParameter("@tel1", textBox3.Text)); ORDEN.Parameters.Add(new SqlParameter("@tel2", textBox4.Text)); ORDEN.Parameters.Add(new SqlParameter("@calle", textBox5.Text)); ORDEN.Parameters.Add(new SqlParameter("@num_ext", textBox7.Text)); ORDEN.Parameters.Add(new SqlParameter("@num_int", textBox6.Text)); ORDEN.Parameters.Add(new SqlParameter("@cp", textBox8.Text)); ORDEN.Parameters.Add(new SqlParameter("@colonia", textBox9.Text)); ORDEN.Parameters.Add(new SqlParameter("@ciudad", textBox10.Text)); ORDEN.Parameters.Add(new SqlParameter("@estado", textBox12.Text)); ORDEN.Parameters.Add(new SqlParameter("@pais", textBox13.Text)); ORDEN.Connection.Open(); ORDEN.ExecuteNonQuery(); ORDEN.Connection.Close(); MessageBox.Show("Registro modificado"); this.Close(); } catch (Exception) { MessageBox.Show("Conexin fallida"); } }

Potrebbero piacerti anche