manual programación aplicada i final
TRANSCRIPT
![Page 1: Manual Programación Aplicada I Final](https://reader035.vdocumento.com/reader035/viewer/2022062407/55cf997d550346d0339da652/html5/thumbnails/1.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062407/55cf997d550346d0339da652/html5/thumbnails/2.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062407/55cf997d550346d0339da652/html5/thumbnails/3.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062407/55cf997d550346d0339da652/html5/thumbnails/4.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062407/55cf997d550346d0339da652/html5/thumbnails/5.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062407/55cf997d550346d0339da652/html5/thumbnails/6.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062407/55cf997d550346d0339da652/html5/thumbnails/7.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062407/55cf997d550346d0339da652/html5/thumbnails/8.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062407/55cf997d550346d0339da652/html5/thumbnails/9.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062407/55cf997d550346d0339da652/html5/thumbnails/10.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062407/55cf997d550346d0339da652/html5/thumbnails/11.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062407/55cf997d550346d0339da652/html5/thumbnails/12.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062407/55cf997d550346d0339da652/html5/thumbnails/13.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062407/55cf997d550346d0339da652/html5/thumbnails/14.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062407/55cf997d550346d0339da652/html5/thumbnails/15.jpg)
Luego agregaremos un nuevo form, y seleccionaremos ReportViewer para mostrar nuestros datos o informe final.
![Page 16: Manual Programación Aplicada I Final](https://reader035.vdocumento.com/reader035/viewer/2022062407/55cf997d550346d0339da652/html5/thumbnails/16.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062407/55cf997d550346d0339da652/html5/thumbnails/17.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062407/55cf997d550346d0339da652/html5/thumbnails/18.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062407/55cf997d550346d0339da652/html5/thumbnails/19.jpg)
![Page 20: Manual Programación Aplicada I Final](https://reader035.vdocumento.com/reader035/viewer/2022062407/55cf997d550346d0339da652/html5/thumbnails/20.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062407/55cf997d550346d0339da652/html5/thumbnails/21.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062407/55cf997d550346d0339da652/html5/thumbnails/22.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062407/55cf997d550346d0339da652/html5/thumbnails/23.jpg)
{ 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](https://reader035.vdocumento.com/reader035/viewer/2022062407/55cf997d550346d0339da652/html5/thumbnails/24.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062407/55cf997d550346d0339da652/html5/thumbnails/25.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062407/55cf997d550346d0339da652/html5/thumbnails/26.jpg)
EJERCICIO: