Algunos años han pasado desde que iniciamos este blog.
Personalmente fue un reto y un experimento durante mis días en aulas de bachillerato en Ingeniería. Hoy a la altura de maestría debo reconocer que abandone el blog, y la forma en que recordaba este sitio era a través de los comentarios y ayudas que nos solicitan.
Me doy por satisfecho pues el objetivo se ha cumplido, ayudar a otros ingenieros, consolidados o en proceso de formación a expandir su criterio.
Esperamos seguir adelante, y retomar el esfuerzo en temas mas técnicos por este lado. Aprovecho para recomendarte el blog Un Byte de Conocimiento, otra fuente de conocimiento que sera de gran ayuda.
Paz.
Fer
Acerca de:
El objetivo del blog es ayudarte como estudiante a prepararte mejor para los exámenes, proyectos y demás situaciones que enfrentes durante la carrera. Asi mismo es una herramienta de consulta para los profesionales en TI.
Material y sugerencias: ingenierosTI@gmail.com
Scrip para darle mantenimiento a las tablas de una base de datos
*********************************************************
--Creación de Base de Datos Préstamos
drop database prestamos;
CREATE DATABASE Prestamos
ON
PRIMARY
(NAME = Prestamos_Primary,
FILENAME = 'C:\Prestamos\Prestamos_Primary.mdf',
SIZE = 50MB,
MAXSIZE = 200,
FILEGROWTH = 20),
FILEGROUP VentasFG
( NAME = VentasData1,
FILENAME = 'C:\Prestamos\PrestamosData1.nfd',
SIZE = 200MB,
MAXSIZE = 800,
FILEGROWTH = 100)
LOG ON
( NAME = Archlog1,
FILENAME = 'C:\Prestamos\Prestamos_Log.lfd',
SIZE = 300MB,
MAXSIZE = 800,
FILEGROWTH = 100);
---Crear Tablas de Base de Datos
use prestamos;
go
--1: Tabla de clientes
Create TABLE dbo.Clientes
(ID_Cliente varchar(12) PRIMARY KEY,
CONSTRAINT chkid_cliente check --chkid_cliente es el nombre del constraint
(ID_Cliente like '[0-9][0-9]-[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]'),--corquetes= valores prmitidos
Nombre varchar(50) NOT NULL,
Apellido1 varchar(50) NOT NULL,
Apellido2 varchar(50) NOT NULL,
Fecha_Nacimiento datetime NOT NULL,
Sexo varchar(1) NOT NULL,
CHECK (sexo ='M' or sexo='F'),
codigo_pais int NOT NULL,
codigo_provincia int NOT NULL,
Estado_Civil varchar(1) NOT NULL);
--Agregar campos a la tabla de clientes
Alter Table dbo.Clientes
Add Lugar_Trabajo varchar(50) default 'Universidad Americana',
Usuario_Incluye varchar(50);
--Ver detalle de la tabla dbo.clientes
EXEC sp_help Clientes;
--Eliminar campos de la tabla clientes
Alter Table dbo.Clientes
Drop column Usuario_Incluye;
--Modificar el tamaño en un campo de una tabla
Alter Table dbo.Clientes
Alter column Lugar_Trabajo varchar(100);
--Modificar el tipo de datos en un campo de una tabla
Alter Table dbo.Clientes
Alter column Estado_Civil int;
--Insertar datos a la tabla dbo.clientes
insert into dbo.clientes (id_cliente,nombre,apellido1,apellido2,fecha_nacimiento,sexo,estado_civil,
codigo_pais, codigo_provincia)
values('01-0000-0322','Carlos Alberto','Molina','Gutiérrez',convert(datetime,'10/15/1970'),'F',1,
1, 1);
--Seleccionar todos los campos de la tabla y observar su contenido
select * from dbo.clientes;
--2: Tabla de préstamos
Create TABLE dbo.prestamos
(ID_prestamo varchar(12) unique, --valor unico
tipo_prestamo int NOT NULL,
monto_prestamo money NOT NULL,
fecha_formalizacion datetime NOT NULL,
fecha_desembolso datetime NOT NULL,
fecha_vencimiento datetime NOT NULL);
--3: Tabla Relación de Préstamos y Clientes (Muchos clientes pueden tener muchos prestamos y viceversa)
Create Table dbo.Cliente_x_Prestamo
(ID_prestamo varchar(12),
ID_Cliente varchar(12),
tipo_relacion varchar(1)
---LLave primaria de dos campos de la tabla
CONSTRAINT PK_Cliente_x_Prestamo PRIMARY KEY CLUSTERED --clustered se ordena de acuerdo a estos campos
(id_prestamo ASC, id_cliente ASC),
--LLaves foraneas de las tablas clientes y prestamos respectivamente
FOREIGN KEY (ID_cliente) REFERENCES dbo.Clientes(ID_cliente),
FOREIGN KEY (ID_prestamo) REFERENCES dbo.prestamos(ID_prestamo));
--Inserción de datos FALTA CLIENTE Y PRESTAMO
insert into dbo.cliente_x_prestamo (ID_prestamo,ID_Cliente,tipo_relacion)
values(1,'01-0888-0999',1);
--Tiene que insertar el cliente
insert into dbo.clientes (id_cliente,nombre,apellido1,apellido2,fecha_nacimiento,sexo,estado_civil,
codigo_pais, codigo_provincia)
values('01-0888-0999','Carlos Alberto','Molina','Gutiérrez',convert(datetime,'10/15/1970'),'F',1,
1, 1);
--Volver a insertar la relación PRESTAMO NO EXISTE
insert into dbo.cliente_x_prestamo (ID_prestamo,ID_Cliente,tipo_relacion)
values(1,'01-0888-0999',1);
--Tiene que insertar el préstamo
insert into dbo.prestamos (id_prestamo,monto_prestamo,fecha_formalizacion,fecha_desembolso,fecha_vencimiento, tipo_prestamo)
values (1,1000000.00,'02/01/2010','02/01/2010','02/01/2020', 1);
--Volver a insertar la relación
insert into dbo.cliente_x_prestamo (ID_prestamo,ID_Cliente,tipo_relacion)
values(1,'01-0888-0999',1);
select * from dbo.cliente_x_prestamo;
--Creación de reglas para campos de tablas
CREATE RULE Formato_prestamo --es lo mismo que un constraint
AS --se cuando ya se ha creado la tabla
@value like '[0-9][0-9][0-9]';--no debe de haber valores en la tabla diferentes al formato
--Enlace de regla
EXECUTE sp_bindrule 'Formato_prestamo','dbo.prestamos.id_prestamo';--le asigno la regla al campo de la tabla
--Volver a insertar el prestamo
insert into dbo.prestamos (id_prestamo,monto_prestamo,fecha_formalizacion,fecha_desembolso,fecha_vencimiento, tipo_prestamo)
values ('111',1000000.00,'02/01/2010','02/01/2010','02/01/2020',1);
--Agregar nuevas llaves foraneas a la tabla clientes
CREATE TABLE PAIS (
codigo_pais INT primary key,
descripcion varchar(50));
--borrado en cascada
delete from cliente_x_prestamo
delete from prestamos
delete from clientes
--agrega a la tabla ya creada una llave foranea
ALTER TABLE DBO.CLIENTES add
FOREIGN KEY (codigo_pais) REFERENCES dbo.pais(codigo_PAIS);
--agrega dos campos y una llave foranea
CREATE TABLE Provincia (
codigo_provincia INT primary key,
codigo_pais int,
FOREIGN KEY (codigo_pais) REFERENCES dbo.pais(codigo_PAIS),
descripcion varchar(50));
ALTER TABLE DBO.CLIENTES add
FOREIGN KEY (codigo_provincia) REFERENCES dbo.provincia(codigo_provincia);
--Borrado de tablas
drop table dbo.cliente_x_prestamo;
drop table dbo.prestamos;
drop table dbo.clientes;
El código es un pequeño ejemplo de como trabajar en C#, lo que les dejo es una pequeña porción del Sistema Real, pero que de seguro les ayudará mucho en lo que andan buscando.
Una parte del mismo está programado en capas.
En el .rar a descargar esta la carpeta para el visual studio y una parte de la base de datos SQL
Descargar
¿Como Recorrer un DataGridView y Cargarlo en una Lista Genérica?
//aqui se debe instanciar la lista generica deseada... para este ejemplo la llamaremos XXXX
//recorre el datagridview linea a linea
for (int x = 0; x < nombredatagridview.RowCount; x++)
{
//instanciar un item de la lista generica
nombre_lista_generica item = newnombre_lista_generica();
//extrae el valor de las columnas del datagridview
//entre las comillas va el nombre de la columna numero "x" del datagridview
//los datos extraidos del datagridview son convertidos de acuerdo al tipo de dato d la propiedad n la lista generica
item.n_linea = Convert.ToInt32(nombredatagridview.Rows[x].Cells[" "].Value);//convierte a integer
item.cod_producto = (string)nombredatagridview.Rows[x].Cells[" "].Value;//convierte a string
item.valor_unitario = Convert.ToSingle(nombredatagridview.Rows[x].Cells[" "].Value);//convierte a float
//agregar el item a la lista generica
XXXX.Add(item);
}//fin del for que recorre el datagridview