documento

Anuncio
[Generalidades de código]
Creación de un sistema ABC
Altas - Bajas - Cambios
Generalidades de código
-SQL Server 2005 Express Ed.
-Microsoft Visual C# 2008
Por: Juan Francisco González Reyes – 07230471
ITSL – Durango, México
[Generalidades de código]
¿Cómo 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();
}
}
¿Cómo hacer el efecto botón con un pictureBox?
Simplemente en los eventos “MouseMove” y “MouseLeave” del pictureBox
añadimos el siguiente código:
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 código]
¿Cómo crear la conexión a la base de datos?
Primeramente deberemos tener la base de datos adjuntada al motor de base
de datos.
Después, dentro del código 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 aplicación.
/// </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 código]
Dentro del código en C# deberemos agregar la librería SQLCLIENT
using System.Data.SqlClient;
Debajo, dentro del código de la clase Form, deberemos declarar la variable
“con” como una conexión SQL:
SqlConnection con;
Dentro del evento que deseemos, agregaremos el siguiente código:
con = new System.Data.SqlClient.SqlConnection();
con.ConnectionString = Global.cadena;
try
{
con.Open();
MessageBox.Show("Conexión realizada");
}
catch (Exception)
{
MessageBox.Show("Conexión fallida");
}
¿Cómo interactuar entre ventanas?
Si queremos abrir una nueva form en tiempo de ejecución, utilizaremos un
código como el siguiente:
private void pictureBox2_3_Click(object sender, EventArgs e)
{
Form11 ventana = new Form11();
ventana.ShowDialog();
}
Si queremos cerrar el Form en ejecución se escribe:
this.Close();
Si queremos ocultar el Form en ejecución se escribe:
this.Hide();
[Generalidades de código]
¿Cómo verificar si existe X usuario?
Se usa una conexión SQL como la descrita al principio del documento
Se utiliza un comando SQL SELECT
Se utiliza el código 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 contraseña
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 contraseña
else
{
MessageBox.Show("La contraseña es incorrecta");
}
[Generalidades de código]
}
//si NO existe el usuario
else
{
MessageBox.Show("El usuario proporcionado no
existe");
}
}
catch
{
MessageBox.Show("Conexion fallida");
}
}
¿Cómo leer información de la Base de Datos?
Se usa una conexión SQL como la descrita al principio del documento
Se utiliza un comando SQL SELECT
En este ejemplo, la función 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 código]
¿Cómo dar de ALTA un registro?
Se usa una conexión SQL como la descrita al principio del documento
Se utiliza un comando SQL INSERT
En este ejemplo, se intenta añadir un cliente a la base de datos
if (MessageBox.Show("Añadir el nuevo registro a la Base de Datos?",
"Añadir 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("Conexión fallida");
}
}
[Generalidades de código]
¿Cómo dar de BAJA un registro?
Se usa una conexión 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 código]
¿Cómo ACTUALIZAR un registro?
Se usa una conexión SQL como la descrita al principio del documento
Se utiliza un comando SQL UPDATE
En este ejemplo, se intenta actualizar la información 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("Conexión fallida");
}
}
Descargar