Manual Programación Aplicada I Final

31
Manual Programación Aplicada I Cuando creamos aplicaciones enlazando una base de datos a nuestro proyecto: Se debe escribir siempre la siguiente línea de código: using System.Data.SqlClient;(esto nos permitirá enlazar la base de datos a nuestro programa) Después de esto, debemos crear una conexión o vía de acceso a nuestra base de datos, luego crearemos un objeto que literalmente traiga toda la información requerida y lo deposite en un contenedor. private void listBox1_SelectedIndexChanged( object sender, EventArgs e) { //Conexión SqlConnection conex = new SqlConnection ( "Server=. ; Database=Northwind; trusted_connection=true" ); //Objeto que traerá los datos desde el procedimiento “ProdCate” usando la vía “conex” SqlDataAdapter sql = new SqlDataAdapter ( "ProdCate" , conex); //Cuando trabajamos con procedimientos sql.SelectCommand.CommandType = CommandType .StoredProcedure; sql.SelectCommand.Parameters.Add( "@cate" , SqlDbType .Int).Value = Convert .ToInt32(listBox1.SelectedValue); DataSet datos = new DataSet (); sql.Fill(datos, "productos" ); dataGridView1.DataSource = datos.Tables[ "Productos" ]; Esto junto con el procedimiento almacenado en sql: ---Ejercicio: Seleccione una categoría y que muestre los productos que le pertenecen create procedure ProdCate @cate int as Select ProductId,ProductName,Unitprice from Products where CategoryID=@cate

Transcript of Manual Programación Aplicada I Final

Page 1: Manual Programación Aplicada I Final

Manual Programación Aplicada I

Cuando creamos aplicaciones enlazando una base de datos a nuestro proyecto:

Se debe escribir siempre la siguiente línea de código:

using System.Data.SqlClient;(esto nos permitirá enlazar la base de datos a nuestro programa)

Después de esto, debemos crear una conexión o vía de acceso a nuestra base de datos, luego crearemos un objeto que literalmente traiga toda la información requerida y lo deposite en un contenedor.

private void listBox1_SelectedIndexChanged(object sender, EventArgs e) { //Conexión

SqlConnection conex = new SqlConnection("Server=. ; Database=Northwind; trusted_connection=true"); //Objeto que traerá los datos desde el procedimiento “ProdCate” usando la vía “conex” SqlDataAdapter sql = new SqlDataAdapter("ProdCate", conex); //Cuando trabajamos con procedimientos sql.SelectCommand.CommandType = CommandType.StoredProcedure; sql.SelectCommand.Parameters.Add("@cate", SqlDbType.Int).Value = Convert.ToInt32(listBox1.SelectedValue); DataSet datos = new DataSet(); sql.Fill(datos,"productos"); dataGridView1.DataSource = datos.Tables["Productos"];

Esto junto con el procedimiento almacenado en sql:

---Ejercicio: Seleccione una categoría y que muestre los productos que le pertenecencreate procedure ProdCate@cate intasSelect ProductId,ProductName,Unitpricefrom Productswhere CategoryID=@cate

Nos permitirán crear la aplicación en Visual usando una listBox para elegir los valores que tome @cate:

Page 2: Manual Programación Aplicada I Final

Aplicando lo anterior, pero con una consulta en vez de un procedimiento almacenado: el ejercicio es mostrar todos los atributos de los empleados que trabajan en la ciudad de London.

using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using System.Data.SqlClient;namespace WindowsFormsApplication5{ public partial class MostrarEmpleados : Form { public MostrarEmpleados() { InitializeComponent(); }

private void button1_Click(object sender, EventArgs e) { SqlConnection conex = new SqlConnection("Server=. ; Database=Northwind; trusted_connection=true"); SqlDataAdapter sql = new SqlDataAdapter("Select * from Employees where City='London'", conex); DataSet datos = new DataSet(); sql.Fill(datos, "Empleado"); dataGridView1.DataSource = datos.Tables["Empleado"]; } }}

Page 3: Manual Programación Aplicada I Final

Ejercicios: Ingresar alumnos a la base de datos Northwind, teniendo como atributos: IdAlumno,

Nombres, Apellidos, Dirección y Sexo mediante un botón.

Sentencia SQL:

-------Insertar Alumno----Create procedure inserta_a@nom varchar(20),@ape varchar(30),@dir varchar(30),@sex char(1)asinsert into Alumnos (nombre,apellido,direccion,sexo)values (@nom,@ape,@dir,@sex)

Page 4: Manual Programación Aplicada I Final

private void button1_Click(object sender, EventArgs e) { char sex; SqlConnection con = new SqlConnection("server=. ; database=Northwind ; trusted_connection=true"); //Para procedimiento almacenado SqlCommand sql = new SqlCommand("inserta_a", con); sql.CommandType = CommandType.StoredProcedure; sql.Parameters.Add("@nom", SqlDbType.VarChar,20).Value = textBox1.Text; sql.Parameters.Add("@ape", SqlDbType.VarChar, 30).Value = textBox2.Text; sql.Parameters.Add("@dir", SqlDbType.VarChar, 30).Value = textBox3.Text; if (radioButton1.Checked == true) sex = 'M'; else sex = 'F'; sql.Parameters.Add("@sex", SqlDbType.Char, 1).Value = sex; //Para abrir la conexión, la instrucción fill abría y cerraba automáticamnete la conexión, cuando se abre la conexión se comprueba si afectó a alguna fila, si es así devolverá 1. con.Open(); int resp = sql.ExecuteNonQuery(); con.Close(); if (resp == 1) { MessageBox.Show("Se insertó el registro!"); textBox1.Text = ""; textBox2.Text = "";

textBox3.Text = ""; textBox1.Focus(); } }

Ejecución del Programa:

Page 5: Manual Programación Aplicada I Final

Ingresar un empleado y elegir su categoría, área de trabajo, si está nombrado y visualizar esto.

Sentencia SQL:

------------------Creando el procedimiento almacenado------------------Alter procedure Pers@nom varchar(25),@ape varchar(35),@dir varchar(35),@sex char,@nombrado bit,@idA int,@idCa intasinsert into Personal (nombre,apellido,direccion,sexo,nombrado,IdArea,IdCate)values(@nom,@ape,@dir,@sex,@nombrado,@idA,@idCa)Select * from Personal

Código en Visual:

Page 6: Manual Programación Aplicada I Final

private void Personal_Load(object sender, EventArgs e) { // TODO: esta línea de código carga datos en la tabla 'northwindDataSet1.CategoriaP' Puede moverla o quitarla según sea necesario. this.categoriaPTableAdapter.Fill(this.northwindDataSet1.CategoriaP); // TODO: esta línea de código carga datos en la tabla 'northwindDataSet.Area' Puede moverla o quitarla según sea necesario. this.areaTableAdapter.Fill(this.northwindDataSet.Area);

} SqlConnection pers = new SqlConnection("server=. ; database=Northwind ; trusted_connection=true"); private void button1_Click(object sender, EventArgs e) { char sexo; //Para procedimiento almacenado SqlCommand sql = new SqlCommand("Pers", pers); sql.CommandType = CommandType.StoredProcedure; sql.Parameters.Add("@nom", SqlDbType.VarChar, 25).Value = textBox1.Text; sql.Parameters.Add("@ape", SqlDbType.VarChar, 35).Value = textBox2.Text; sql.Parameters.Add("@dir", SqlDbType.VarChar, 35).Value = textBox3.Text; if (radioButton1.Checked == true) sexo = 'F'; else sexo = 'M'; sql.Parameters.Add("@sex", SqlDbType.Char, 1).Value = sexo;

//Añadir una área: sql.Parameters.Add("@idA", SqlDbType.Int).Value = comboBox1.SelectedValue; //Para añadir una categoría con la listBox sql.Parameters.Add("@idCa", SqlDbType.Int).Value = listBox1.SelectedValue;

if (checkBox1.Checked == true) sql.Parameters.Add("@nombrado", SqlDbType.Bit).Value = 1; else sql.Parameters.Add("@nombrado", SqlDbType.Bit).Value = 0; //Para abrir la conexión, la instrucción fill abría y cerraba automáticamnete la conexión //int result=sql.ExecuteScalar(); pers.Open(); int resp = sql.ExecuteNonQuery(); pers.Close(); if (resp == 1) { MessageBox.Show("Se insertó el registro!"); textBox1.Text = ""; textBox2.Text = ""; textBox3.Text = "";

textBox1.Focus(); } Visualizar(); }

Page 7: Manual Programación Aplicada I Final

private void Visualizar() { SqlDataAdapter s = new SqlDataAdapter("Select * from Personal", pers); DataSet DS = new DataSet(); s.Fill(DS, "Personal"); dataGridView1.DataSource = DS.Tables["Personal"];

}

Ejecución:

Crear un sistema en el que se introduzca un usuario y su contraseña para que de esa manera acceda a introducir un nuevo empleado.Sentencias SQL:

Alter procedure UsuarioValidar@Idusuario varchar(20),@password varchar(20)asselect COUNT(*) as NúmeroResultadosfrom Usuario

Page 8: Manual Programación Aplicada I Final

where IdUsuario=@Idusuario and password=@password and estado='V'

Código Visual: Validación

using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using System.Data.SqlClient;namespace WindowsFormsApplication5{ public partial class Usuario : Form { public Usuario() { InitializeComponent(); } int c = 0; SqlConnection us = new SqlConnection("server=. ; database=Northwind ; trusted_connection=true");

private void button1_Click(object sender, EventArgs e) { SqlCommand sql = new SqlCommand("UsuarioValidar", us); sql.CommandType = CommandType.StoredProcedure; sql.Parameters.Add("@Idusuario", SqlDbType.VarChar, 20).Value = textBox1.Text; sql.Parameters.Add("@password", SqlDbType.VarChar, 20).Value = textBox2.Text; us.Open(); object resul = sql.ExecuteScalar(); us.Close();

if (resul.Equals(1)) { MessageBox.Show("¡Clave acceptada!"); Personal p = new Personal(); p.Show(); textBox1.Text = ""; textBox2.Text = ""; } else { MessageBox.Show("¡El usuario y/o clave son incorrectos!"); textBox2.Text = ""; textBox2.Focus(); c++; if (c == 3) { deshabilitarestado(); MessageBox.Show("¡Has sobrepasado el número de intentos usuario " + textBox1.Text + " deshabilitado"); } } }

Page 9: Manual Programación Aplicada I Final

private void deshabilitarestado() { SqlCommand sql = new SqlCommand("ModificaEstado", us); sql.CommandType = CommandType.StoredProcedure; sql.Parameters.Add("@Idusuario", SqlDbType.VarChar, 20).Value = textBox1.Text; sql.Parameters.Add("@estado", SqlDbType.Char, 1).Value = 'F'; us.Open(); object resul = sql.ExecuteScalar(); us.Close(); }

private void button2_Click(object sender, EventArgs e) { Administrador f = new Administrador(); f.Show(); }

private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { ModificarPassword f1 = new ModificarPassword(); f1.Show(); } }}

Page 10: Manual Programación Aplicada I Final

Para habilitar usuario, en modo administrador:

private void button1_Click(object sender, EventArgs e) { SqlConnection us = new SqlConnection("server=. ; database=Northwind ; trusted_connection=true"); SqlCommand sql = new SqlCommand("ModificaEstado", us); sql.CommandType = CommandType.StoredProcedure; sql.Parameters.Add("@Idusuario", SqlDbType.VarChar, 20).Value = textBox1.Text; sql.Parameters.Add("@estado", SqlDbType.Char, 1).Value = 'V'; us.Open(); object resul = sql.ExecuteScalar(); us.Close(); MessageBox.Show("¡Usuario habilitado!"); Close(); }

Sentencia SQL:--------Creamos el procedimiento almacenado modificar estado----------------create procedure ModificaEstado@Idusuario varchar(20),@estado char(1)asupdate Usuarioset estado=@estadowhere IdUsuario=@Idusuario

Page 11: Manual Programación Aplicada I Final

Modificar Password:

Alter procedure ActualizaP@Idusuario varchar(20),@pa varchar(20),@pn varchar(20)asupdate Usuario

set password=@pn where IdUsuario=@Idusuario and password=@pa

private void button1_Click(object sender, EventArgs e) { SqlConnection us = new SqlConnection("server=. ; database=Northwind ; trusted_connection=true"); SqlCommand sql = new SqlCommand("ActualizaP", us); sql.CommandType = CommandType.StoredProcedure; sql.Parameters.Add("@Idusuario", SqlDbType.VarChar, 20).Value = textBox1.Text; sql.Parameters.Add("@pa", SqlDbType.VarChar, 20).Value = textBox2.Text; if (textBox3.Text.Equals(textBox4.Text)) { sql.Parameters.Add("@pn", SqlDbType.VarChar, 20).Value = textBox3.Text; us.Open(); object resul = sql.ExecuteScalar(); us.Close(); MessageBox.Show("¡¡Acción completada, clave modificada!!"); Close(); } else { MessageBox.Show("¡Las contraseñas no son iguales, vuelva a introducirlas!"); textBox3.Text = ""; textBox4.Text = ""; textBox3.Focus(); } }

Page 12: Manual Programación Aplicada I Final

Para la creación de reportes, usando una matriz o un gráfico según el siguiente ejemplo:

Dar un reporte de la cantidad de productos comprados por los clientes según cada categoría de productos

Consulta SQL:

Select CompanyName,CategoryName,SUM(quantity)as Totalfrom Customers as Cinner join Orders as Oon C.CustomerID=O.CustomerIDinner join [Order Details] as ODon O.OrderID=OD.OrderIDinner join Products as Pon OD.ProductID=P.ProductIDinner join Categories as Caon P.CategoryID=Ca.CategoryIDgroup by CompanyName, CategoryName

order by CompanyName, CategoryName

Page 13: Manual Programación Aplicada I Final

En nuestro data set, creamos la tabla “PRODCOMCLICATE”, el cuál contendrá la consulta SQL

Copiamos nuestra consulta en PRODCOMCLICATE, para hacer que se nos muestren las propiedades elegidas.

Page 14: Manual Programación Aplicada I Final

Clic en Finalizar.

Para crear nuestro diseño de reporte, damos clic en nuestra carpeta de reportes y damos clic derecho, agregar, nuevo elemento, seleccionamos Reporting y luego clic en Informe para diseñar si nuestro será una matriz de datos o un gráfico. Damos luego clic en Nuevo (Datos del informe) y seleccionamos conjunto de datos, seleccionamos todos los atributos correspondientes.

Luego debemos ir a Cuadro de herramientas, es aquí donde seleccionaremos los elementos del informe.

Page 15: Manual Programación Aplicada I Final

Luego agregaremos un nuevo form, y seleccionaremos ReportViewer para mostrar nuestros datos o informe final.

Page 16: Manual Programación Aplicada I Final

Antes de ejecutarlo debemos asociar el ReportViewer a nuestro reporte creado (Donde agregamos la matriz, gráfico, etc.)

Cuando ejecutamos obtenemos lo siguiente:

Usando Matriz:

Page 17: Manual Programación Aplicada I Final

Usando Gráfico:

Ejercicios:

SELECT LASTNAME + ' ' + FIRSTNAME AS NOMBRE, SUM (QUANTITY * UNITPRICE) AS TOTALFROM Orders AS OINNER JOIN [Order Details] AS DON O.OrderID = D.OrderIDINNER JOIN Employees AS EON O.EmployeeID = E.EmployeeIDGROUP BY LASTNAME + ' ' + FIRSTNAME

OTRA SENTENCIA:CREATE PROCEDURE CANT_PROD@Pais NCHAR(15),@IdEmple intasSELECT COMPANYNAME, YEAR(ORDERDATE) AS AÑO, SUM(QUANTITY) AS NUMEROFROM Customers AS CINNER JOIN ORDERS AS OON C.CustomerID = O.CustomerID INNER JOIN [Order Details] AS DON O.OrderID = D.OrderID INNER JOIN Products AS PON D.ProductID = D.ProductID WHERE Country = @Pais AND EmployeeID = @IdEmple AND Discontinued = 0GROUP BY COMPANYNAME, YEAR(ORDERDATE)

--- ejercicio 2 (Ejercicios tareas)select ProductID, ProductName, UnitPrice, SupplierIDfrom Productswhere SupplierID = @Supl-- ejercicio 3select YEAR(orderdate) as año, COUNT(orderID) as TOTAL

Page 18: Manual Programación Aplicada I Final

from Orderswhere MONTH(OrderDate) = @mesGROUP BY YEAR(orderdate)

select orderidfrom Orderswhere YEAR(OrderDate) = 1997 and MONTH(OrderDate) = 1

EJERCICIO CON COMBOBOX:

public FormEjercicio2() { InitializeComponent(); }

private void FormEjercicio2_Load(object sender, EventArgs e) { // TODO: esta línea de código carga datos en la tabla 'DataSet1Ejemplo.Products' Puede moverla o quitarla según sea necesario. this.suppliersTableAdapter.Fill(this.northwindDataSet.Suppliers); // TODO: esta línea de código carga datos en la tabla 'northwindDataSet.Suppliers' Puede moverla o quitarla según sea necesario. }

private void label1_Click(object sender, EventArgs e) {

}

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { this.ProductsTableAdapter.Fill(this.DataSet1Ejemplo.Products, Convert.ToInt32(comboBox1.SelectedValue)); this.reportViewer1.RefreshReport(); }

Page 19: Manual Programación Aplicada I Final
Page 20: Manual Programación Aplicada I Final

Si fuera listbox

public partial class Form2_ : Form { public Form2_() { InitializeComponent(); }

private void Form2__Load(object sender, EventArgs e) { // TODO: esta línea de código carga datos en la tabla 'DataSet1Ejemplo.DataTable1' Puede moverla o quitarla según sea necesario. }

private void listBox1_SelectedIndexChanged(object sender, EventArgs e) { this.DataTable1TableAdapter.Fill(this.DataSet1Ejemplo.DataTable1, Convert.ToInt32(listBox1.SelectedItem));

this.reportViewer1.RefreshReport(); } }}

Page 21: Manual Programación Aplicada I Final

EJERCICIO 1:

Crear un menú que permita ingresar datos a una tabla, el código se generará automáticamente concatenando los dos primeros caracteres del nombre, con los dos últimos caracteres del apellido, más el año de nacimiento y un número de 3 dígitos que se inicializa en “001” y aumenta solamente cuando se pueden generar códigos repetidos. Ejemplo:

Ingreso 1:

Nombre: María Apellidos: Perez Cuellar Fecha de Nacimiento: 11/10/1991 Código: Malar1991001

Ingreso 2:

Nombre: Manuel Apellidos: Pérez Castelar Fecha de Nacimiento: 08/11/1991 Código: Mala1991002

También se cargará en un ComboBox las ciudades del Perú. Actualizar los datos y mostrarlos automáticamente en un DataGriedView. El TextBox de código no debe estar deshabilitado.

CÓDIGO EJERCICIO1:

Diseño de la tabla ingresos:

Page 22: Manual Programación Aplicada I Final

Deberemos cargar en el Load del ejercicio las ciudades y asignarlos al ComboBox.

private void Ejercicio2_Load(object sender, EventArgs e) { string sql = "SELECT NombreCiudad FROM Ciudades"; SqlConnection conex = new SqlConnection("Server = .; Database = DBMarket; trusted_connection = true"); DataSet dS = new DataSet(); SqlDataAdapter datos = new SqlDataAdapter(sql, conex); datos.Fill(dS, "Ciudades"); comboBox1.DataSource = dS.Tables[0]; comboBox1.ValueMember = "NombreCiudad"; comboBox1.DisplayMember = "NombreCiudad"; }

Código en SQL para verificar si se encuentran repetidos, recibe como parámetro la cadena formada por las dos primeras letras del nombre, con las dos últimas letras del apellido y el año de nacimiento. Este procedimiento sirve para colocar el número del final de código, si no hay repetidos colocaremos “001” y si no irá aumentando en 1 unidad. Este procedimiento devuelve la cantidad de repetidos que existen en la tabla.

CREATE PROC Contar_Repetidos (@cod varchar(20))ASSELECT COUNT(*) AS TOTALFROM IngresosWHERE LEFT (Codigo, 8) = @cod

Código en SQL para insertar un nuevo registro en la tabla Ingresos:

CREATE PROC InsertarNuevo(@cod varchar(20), @nom varchar(20), @ape varchar(20), @fn datetime, @ciu varchar(20), @sex bit)AS SET NOCOUNT ONINSERT INTO Ingresos (Codigo ,Nombres, Apellidos ,Fecha_Nacimiento,Cuidad, Sexo)VALUES (@cod, @nom, @ape, @fn, @ciu, @sex)

Código en C# para cargar las ciudades de una base de datos llamada ciudades:

// conexión a la base de datos SqlConnection conex = new SqlConnection("Data Source=.;Initial Catalog=DBMarket;Integrated Security=True"); private void Ejercicio2_Load(object sender, EventArgs e)

Page 23: Manual Programación Aplicada I Final

{ string sql = "SELECT NombreCiudad FROM Ciudades"; SqlConnection conex = new SqlConnection("Server = .; Database = DBMarket; trusted_connection = true"); DataSet dS = new DataSet(); SqlDataAdapter datos = new SqlDataAdapter(sql, conex); datos.Fill(dS, "Ciudades"); comboBox1.DataSource = dS.Tables[0]; comboBox1.ValueMember = "NombreCiudad"; comboBox1.DisplayMember = "NombreCiudad"; }

Acciones que se realizan cuando se pulsa el botón:

private void button1_Click(object sender, EventArgs e) { // método que genera la fecha string fecha = generarFecha(dateTimePicker1); // ingresando nuevo registro ingreso(fecha); // actualizando la tabla actualizar(); }

Función generarFecha:

public string generarFecha(DateTimePicker dateTimePicker1) { string dia = dateTimePicker1.Value.Day.ToString(); string mes = dateTimePicker1.Value.Month.ToString(); string año = dateTimePicker1.Value.Year.ToString(); return dia + "/" + mes + "/" + año; }

Método ingreso:

public void ingreso(string fecha) { string nom = textBox2.Text; string ape = textBox3.Text; string año = dateTimePicker1.Value.Year.ToString(); // generando los 8 primeros dígitos del código string codInicial = nom.Substring(0, 2) + ape.Substring(ape.Length - 2, 2) + año; MessageBox.Show(codInicial);

SqlCommand datos1 = new SqlCommand("Contar_Repetidos", conex); datos1.CommandType = CommandType.StoredProcedure; datos1.Parameters.Add("@cod", SqlDbType.VarChar).Value = codInicial; conex.Open(); int res = (int)datos1.ExecuteScalar(); //res devuelve 0 si no hay repetidos conex.Close(); res++; string valorFinal; if (res < 10) valorFinal = "00" + res; else if (res < 100)

Page 24: Manual Programación Aplicada I Final

valorFinal = "0" + res; else valorFinal = res.ToString(); MessageBox.Show(valorFinal);

string codigo = codInicial + valorFinal; SqlCommand datos2 = new SqlCommand("InsertarNuevo", conex); datos2.CommandType = CommandType.StoredProcedure; datos2.Parameters.Add("@cod", SqlDbType.VarChar).Value = codigo; datos2.Parameters.Add("@nom", SqlDbType.VarChar).Value = nom; datos2.Parameters.Add("@ape", SqlDbType.VarChar).Value = ape; datos2.Parameters.Add("@fn", SqlDbType.DateTime).Value = fecha; datos2.Parameters.Add("@ciu", SqlDbType.VarChar).Value = comboBox1.SelectedValue; bool sexo; if (radioButton1.Checked) sexo = false; else sexo = true; datos2.Parameters.Add("@sex", SqlDbType.Bit).Value = sexo; conex.Open(); datos2.ExecuteNonQuery(); conex.Close(); }

Método actualizar:

public void actualizar() { DataSet dS1 = new DataSet(); SqlDataAdapter datos1 = new SqlDataAdapter("SELECT * FROM Ingresos", conex); datos1.Fill(dS1, "Ingresos"); dataGridView1.DataSource = dS1.Tables[0]; }

Ejercicio2:

Page 25: Manual Programación Aplicada I Final

public partial class Ejercicio2 : Form { public Ejercicio2() { InitializeComponent(); }

private void button1_Click(object sender, EventArgs e) { char sexo; SqlConnection cnn = new SqlConnection("server = .; database = NorthWind; trusted_connection = true"); //Para procedimiento almacenado SqlCommand sql = new SqlCommand("ejercicio2", cnn); sql.CommandType = CommandType.StoredProcedure; sql.Parameters.Add("@nom", SqlDbType.VarChar, 30).Value = textBox2.Text; sql.Parameters.Add("@ape", SqlDbType.VarChar, 30).Value = textBox3.Text; sql.Parameters.Add("@fn", SqlDbType.DateTime).Value = Convert.ToDateTime(textBox4.Text); sql.Parameters.Add("@ciu", SqlDbType.VarChar, 20).Value = comboBox1.SelectedValue; if (radioButton1.Checked == true) sexo = 'F'; else sexo = 'M'; sql.Parameters.Add("@sexo", SqlDbType.Char, 1).Value = sexo; //Para abrir la conexion cnn.Open(); int resp = sql.ExecuteNonQuery(); cnn.Close(); if (resp == 1) { MessageBox.Show("SE REGISTRO SATISFACTORIAMENTE!!!"); textBox2.Text = ""; textBox3.Text = ""; textBox4.Text = ""; textBox2.Focus();

} }

private void Ejercicio2_Load(object sender, EventArgs e) { // TODO: esta línea de código carga datos en la tabla 'northwindDataSet2.empleados' Puede moverla o quitarla según sea necesario. this.empleadosTableAdapter.Fill(this.northwindDataSet2.empleados);

} }

Page 26: Manual Programación Aplicada I Final

EJERCICIO: