PROGRAMAN
DOAPLICACION
ES
Con Base de
Datos
Programacin Visual II | Tclgo. Csar O. Vanegas Mendoza
Manual de Programacin Visual C# con SQL Server 2008
I. BASES DE DATOS Y VISUAL C#
Visual C# no es un administrador de Bases de Datos, slo utiliza un gestor de Bases
de Datos, para nuestro caso ser, Microsoft SQL Server 2008; para permitir la
visualizacin de una manera ms esttica de los datos, tambin para poder mostrar,
o realizar algunos cambios en alguna base de datos.
Es necesario tener conocimiento del concepto de algunas sentencias que utilizaremos
en la segunda parte del curso Programacin Visual II:
.1. Espacio de nombres [Link]:
Es el proveedor de datos de .NET Framework para SQL Server. Un proveedor
de datos de .NET Framework para SQL Server describe una coleccin de clases
utilizada para tener acceso a una base de datos de SQL Server en el espacio
administrado.
.2. SqlConnection (Clase):
Representa una conexin abierta con una base de datos de SQL Server. Esta
clase no se puede heredar.
.3. SqlDataAdapter (Clase):
Representa un conjunto de comandos de datos y una conexin de base de datos
que se utilizan para rellenar un DataSet y actualizar una base de datos de SQL
Server. Esta clase no se puede heredar. SqlDataAdapter, se utiliza como un
puente entre DataSet y SQL Server para recuperar y guardar datos.
SqlDataAdapter proporciona este puente mediante la asignacin de Fill, que
cambia los datos en DataSet para que coincidan con los datos del origen de
datos.
.4. [Link] (Mtodo):
Rellena un objeto DataSet o un objeto DataTable. Agrega filas a DataSet o las
actualiza para hacerlas coincidir con las filas del origen de datos utilizando
los nombres de DataSet y DataTable.
Tclgo. Csar Vanegas Mendoza Pgina 2
Manual de Programacin Visual C# con SQL Server 2008
Sintaxis:
[Link](DataSet, String)
.5. DataSet (Clase):
Representa una cach de memoria interna de datos. DataSet, que es una
cach de memoria interna de datos recuperados de un origen de datos,
representa un componente fundamental de la arquitectura de [Link].
DataSet est compuesto por una coleccin de objetos DataTable que se
pueden relacionar entre ellos mediante objetos DataRelation.
.6. Ejemplo de conexiones a una Base de Datos:
Cadena de conexin con autenticacin de Windows
SqlConnection CN = new SqlConnection (Data Source = ServidorSQL;
Initial Catalog = BaseDatos; Integrated Security = True);
CN: Nombre de la conexin a la base de datos.
ServidorSQL: Es el nombre del servidor; si la conexin es local podemos
escribir (local), localhost; si la conexin no es local, se debe
escribir el nombre propio de dicha conexin.
BaseDatos: Indica el nombre de la base de datos a la cual se desea conectar.
Integrated Security: Permite conectarse a la base de datos con el mecanismo de
autenticacin de Windows.
Tclgo. Csar Vanegas Mendoza Pgina 3
Manual de Programacin Visual C# con SQL Server 2008
Cadena de conexin con autenticacin SQL Server
SqlConnection CN = new SqlConnection ("data source = ServidorSQL;
initial catalog = BaseDatos; user id = Usuario; password = Contrasea");
CN: Nombre de la conexin a la base de datos.
ServidorSql: Es el nombre del servidor; en este caso, la conexin es local; si la
conexin no es local, se debe escribir el nombre propio de dicha
conexin.
BaseDatos: Nombre de la Base de Datos
User Id: nombre de Usuario
Password: contrasea para ingresar a sql
Indicar una base de datos que est en un servidor "remoto"
Para acceder a una base de datos que est en un servidor remoto, es decir en
otro equipo, debemos usar cualquiera de las dos cadenas de conexin que
hemos visto antes, aunque lo normal ser que se use la segunda en la que se
indica el nombre del usuario y la contrasea.
Esto se suele usar cuando estamos en una pgina Web o bien si queremos
acceder desde una aplicacin de escritorio ([Link]), pero la base de
datos no est en nuestro equipo.
El cdigo podra ser el siguiente, y puedes usar una direccin IP o el nombre de
un dominio (DNS) para indicar el nombre del servidor de SQL Server:
Data Source = ServidorSQL; initial catalog = BaseDatos; user id = Usuario;
password = Contrasea
Tclgo. Csar Vanegas Mendoza Pgina 4
Manual de Programacin Visual C# con SQL Server 2008
PRCTICA I
1. VISUALIZAR LOS ESTUDIANTES QUE ESTN EN UNA BASE DE DATOS.
Se tiene la informacin en una hoja de Excel y es necesario trasferir esos datos a
SQL, para ello seguiremos los siguientes pasos:
En SQL, creamos la Base de datos Manual y una nueva tabla llamada
Estudiantes y seleccionamos el tipo de dato adecuado para cada fila y clave
primaria:
Guardamos el registro de datos de Excel en formato con extensin csv
(delimitado por comas):
Tclgo. Csar Vanegas Mendoza Pgina 5
Manual de Programacin Visual C# con SQL Server 2008
Obtendremos lo siguiente (para visualizar el archivo as, es necesario hacer
un clic derecho sobre el archivo y escoger la opcin editar)
Para poder obtener slo los datos de los alumnos, debemos eliminar la
primera fila que corresponde a los encabezados:
Tclgo. Csar Vanegas Mendoza Pgina 6
Manual de Programacin Visual C# con SQL Server 2008
Escribiremos el siguiente cdigo SQL Transact para poder migrar los datos
a la tabla:
BULK
INSERT ESTUDIANTES
FROM 'F:\Documentos\Excel\[Link]' ruta del archivo
with(
FIELDTERMINATOR=',', Indica que al encontrar una coma ste termina e inicia
otro.
ROWTeRMINATOR='\n'
)
Ahora, ya tenemos los datos en una tabla de una base de datos y podemos
ejecutar sobre ellos cdigos SQL Transact:
Select *
From estudiantes
Tclgo. Csar Vanegas Mendoza Pgina 7
Manual de Programacin Visual C# con SQL Server 2008
Tclgo. Csar Vanegas Mendoza Pgina 8
Manual de Programacin Visual C# con SQL Server 2008
Luego de tener los datos ya en el gestor SQL, haremos el trabajo
en visual, necesitaremos utilizar la herramienta
DataGriediew y escribiremos el siguiente cdigo:
using [Link];
namespace WinapiManual
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void CargarDatos()
{
SqlConnection CN = new SqlConnection("Data Source = USUARIO-PC;
Initial Catalog = Manual; Integrated Security = True");
[Link] ();
String ConsultaSQL = "Select * from Estudiantes";
SqlDataAdapter Datos= new SqlDataAdapter(ConsultaSQL, CN);
DataSet ds = new DataSet();
[Link](ds,"Estudiantes");
[Link] = "Estudiantes";
[Link]=ds;
[Link]();
}
private void Form1_Load(object sender, EventArgs e)
{
CargarDatos();
}
}
}
Tclgo. Csar Vanegas Mendoza Pgina 9
Manual de Programacin Visual C# con SQL Server 2008
2. VISUALIZAR LOS DATOS DE LOS ALUMNOS DESDE LA WEB:
Crearemos un formulario web:
Utilizaremos la herramienta GriedView:
Tclgo. Csar Vanegas Mendoza Pgina 10
Manual de Programacin Visual C# con SQL Server 2008
El cdigo en visual ser:
using [Link];
using [Link];
namespace winapiWen
{
public partial class WebFormEstudiantes : [Link]
{
private void CargarDatos()
{
SqlConnection CN = new SqlConnection("Data Source = USUARIO-PC;
Initial Catalog = Manual; Integrated Security = True");
[Link]();
String ConsultaSQL = "Select * from Estudiantes";
SqlDataAdapter Datos= new SqlDataAdapter(ConsultaSQL, CN);
DataSet ds = new DataSet();
[Link](ds,"Estudiantes");
[Link] = "Estudiantes";
[Link]=ds;
[Link]();
[Link]();
}
protected void Page_Load(object sender, EventArgs e)
{
CargarDatos();
}
}
}
Tclgo. Csar Vanegas Mendoza Pgina 11
Manual de Programacin Visual C# con SQL Server 2008
3. CREAR UN PROGRAMA QUE PERMITA VISUALIZAR LOS DATOS DE UN ESTUDIANTE
CUYO CDIGO SEA INGRESADO DESDE EL TECLADO:
Crearemos un procedimiento almacenado en SQL, para poder usar el programa
las veces que deseemos y para facilitar el desarrollo de este ejercicio:
CREATE PROC [dbo].[BUSCAR_ESTUDIANTE]
@ID varchar(10)
AS
SELECT * FROM ESTUDIANTES
where IdEstudiante like '%'+ @ID +'%'
Interface:
Cdigo en Visual:
using [Link];
namespace WinapiManual
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
SqlConnection Conexion=new SqlConnection("Data Source = USUARIO-PC; Initial
Catalog = Manual; Integrated Security = True");
SqlCommand Comando;
SqlDataAdapter Adaptador;
DataTable Tabla;
Tclgo. Csar Vanegas Mendoza Pgina 12
Manual de Programacin Visual C# con SQL Server 2008
private void CargarDatos()
{
try{
[Link]();
Comando = new SqlCommand("Buscar_Estudiante", Conexion);
[Link]("@Id", [Link],10).Value = [Link];
[Link] = [Link];
Adaptador = new SqlDataAdapter(Comando);
Tabla=new DataTable();
[Link](Tabla);
[Link] = Tabla;
[Link]();
}
catch (SqlException ex)
{
[Link]("Error:"+ex, "SQL Expeccion",[Link]);
}
}
private void Form2_Load(object sender, EventArgs e)
{
CargarDatos();
}
private void txtBuscar_TextChanged(object sender, EventArgs e)
{
CargarDatos();
}
private void btnMostrar_Click(object sender, EventArgs e)
{
[Link]();
}
}
}
PRCTICA II TRABAJO DE CICLO
Esta prctica consiste en crear un men con opciones que nos permitan visualizar
distintas y numerosas consultas a la base de datos Productos; as como tambin hacer
algunas modifcaciones a los datos de la misma. Disee la siguiente estructura de
tablas y agrega unos cuantos registros a cada tabla:
Tclgo. Csar Vanegas Mendoza Pgina 13
Manual de Programacin Visual C# con SQL Server 2008
1. REALIZAR UNA CONEXIN QUE SIRVA PARA TODOS LOS FORMULARIOS
QUE SE IMPLEMENTARN
Es necesario agregar una clase; para ello, sobre el proyecto clic derecho y luego
elegir la opcin agregar; finalmente clic en la opcin clase:
Se nos mostrar la siguiente ventana y tendremos que escribir un nombre para la
conexin, la denominaremos ConexionBaseDatos:
Tclgo. Csar Vanegas Mendoza Pgina 14
Manual de Programacin Visual C# con SQL Server 2008
Finalmente, el cdigo de la conexin es:
using [Link];
namespace WinapiManual
{
public class ConexionBaseDatos
{
public SqlConnection Conexion = new SqlConnection("Data Source = USUARIO-PC;
Initial Catalog = Manual; Integrated Security = True");
}
}
2. CREAR UN MEN QUE NOS MUESTRE LAS SIGUIENTES OPCIONES:
Mantenimiento
Reportes
Consultas
Acerca de
Tclgo. Csar Vanegas Mendoza Pgina 15
Manual de Programacin Visual C# con SQL Server 2008
3. VISUALIZAR EL NMERO DE PRODUCTOS POR CATEGORA:
Cdigo SQL:
CREATE PROC [dbo].[NumeroDeProductosPorCategoria]
AS
SELECT NombreCategoria,COUNT(*) AS TOTAL
FROM Categoria AS C INNER JOIN Productos AS P
ON [Link] =[Link] GROUP BY NombreCategoria
ORDER BY Nombrecategoria
Interface en
Visual:
Tclgo. Csar Vanegas Mendoza Pgina 16
Manual de Programacin Visual C# con SQL Server 2008
Cdigo visual, para poder mostrar los datos:
using [Link];
namespace [Link]
{
public partial class FrmNumerodeProductosporCategoria : Form
{
public FrmNumerodeProductosporCategoria()
{
InitializeComponent();
}
SqlCommand Comando;
SqlDataAdapter Adaptador;
DataTable Tabla;
ConexionBaseDatos c = new ConexionBaseDatos();
private void CargarDatos()
{
try
{
[Link]();
Comando = new SqlCommand("NumeroDeProductosPorCategoria",
[Link]);
[Link] = [Link];
Adaptador = new SqlDataAdapter(Comando);
Tabla = new DataTable();
[Link](Tabla);
[Link] = Tabla;
[Link]();
}
catch (SqlException ex)
{
[Link]("Error:" + ex, "SQL Expeccion",
[Link]);
}
}
private void FrmNumerodeProductosporCategoria_Load(object sender,
EventArgs e)
{
CargarDatos();
}
}
}
Cdigo visual para poder llamar al formulario que contiene dichos datos:
Tclgo. Csar Vanegas Mendoza Pgina 17
Manual de Programacin Visual C# con SQL Server 2008
private void productosPorCategoriaToolStripMenuItem_Click(object sender,
EventArgs e)
{
FrmNumerodeProductosporCategoria fr = new
FrmNumerodeProductosporCategoria();
[Link]=this;
[Link]();
}
4. REALIZAR UNA CONSULTA QUE PERMITA VER CDIGO DEL PRODUCTO, NOMBRE
DEL PRODUCTO, PRECIO DEL PRODUCTO, STOCK, NOMBRE DEL PROVEEDOR Y
CATEGORA DEL PRODUCTO, LAS CATEGORAS SE MOSTRARN EN UNA LISTA
DESPLEGABLE:
Cdigo SQL:
CREATE PROC [dbo].[TODASLASCATEGORIAS]
AS
SELECT * FROM [Link]
CREATE PROC [dbo].[BUSCARPRODUCTOSPORCATEGORIA]
@CATE NVARCHAR(50)
AS
SELECT [Link], [Link],
[Link], [Link],
[Link],[Link],[Link]
edor, [Link]
FROM [Link] INNER JOIN [Link] ON
[Link] = [Link] INNER
JOIN [Link] ON [Link] =
[Link]
WHERE [Link] =@CATE
Interface en Visual:
Tclgo. Csar Vanegas Mendoza Pgina 18
Manual de Programacin Visual C# con SQL Server 2008
Cdigo visual, para poder mostrar los datos:
using [Link];
namespace WinapiManual
{
public partial class FrmBuscarProductosPorCategoria : Form
{
public FrmBuscarProductosPorCategoria()
{
InitializeComponent();
}
ConexionBaseDatos c = new ConexionBaseDatos();
SqlCommand Comando;
SqlDataAdapter Adaptador;
DataTable Tabla;
private void LLenarLista()
{
Comando = new SqlCommand("TODASLASCATEGORIAS", [Link]);
[Link] = [Link];
Adaptador = new SqlDataAdapter(Comando);
Tabla = new DataTable();
[Link](Tabla);
[Link] = Tabla;
[Link] = "NombreCategoria";
}
private void LLenarDatagrid()
{
try
{
Comando = new SqlCommand("BUSCARPRODUCTOSPORCATEGORIA", [Link]);
[Link]("@CATE", [Link],(50)).Value =
Tclgo. Csar Vanegas Mendoza Pgina 19
Manual de Programacin Visual C# con SQL Server 2008
[Link];
[Link] = [Link];
Adaptador = new SqlDataAdapter(Comando);
Tabla = new DataTable();
[Link](Tabla);
[Link] = Tabla;
}
catch (SqlException ex)
{
[Link]("Error:" + ex, "SQL Expeccion", [Link]);
}
}
private void FrmBuscarProductosPorCategoria_Load(object sender, EventArgs e)
{
LLenarLista();
}
private void lstCategoria_SelectedIndexChanged(object sender, EventArgs e)
{
LLenarDatagrid();
}
}
}
5. MOSTRAR LOS SIGUIENTES DATOS DE LOS PRODUCTOS: NOMBRE,
PRECIO, CATEGORA Y PROVEEDOR; SLO DE LOS PRODUCTOS QUE ESTN
DENTRO DE UN RANGO DE PRECIOS:
Cdigo SQL:
CREATE PROC BuscarProductosPorPrecio
@menor decimal(18,2),
@mayor decimal(18,2)
as
SELECT [Link], [Link],
[Link],
[Link], [Link]
FROM [Link] INNER JOIN [Link] ON
[Link] = [Link]
INNER JOIN [Link] ON [Link] =
[Link]
WHERE [Link] BETWEEN @menor and @mayor
Interface en Visual:
Tclgo. Csar Vanegas Mendoza Pgina 20
Manual de Programacin Visual C# con SQL Server 2008
Cdigo visual, para poder mostrar los datos:
using [Link];
namespace WinapiManual
{
public partial class FrmProductosPorPrecio : Form
{
public FrmProductosPorPrecio()
{
InitializeComponent();
}
ConexionBaseDatos c = new ConexionBaseDatos();
SqlCommand Comando;
SqlDataAdapter Adaptador;
DataTable Tabla;
private void LLenarDatagrid()
{
try
{
Comando = new SqlCommand("BuscarProductosPorPrecio",
[Link]);
[Link]("@menor", [Link]).Value =
[Link];
[Link]("@mayor", [Link]).Value
=[Link];
[Link] = [Link];
Adaptador = new SqlDataAdapter(Comando);
Tabla = new DataTable();
[Link](Tabla);
[Link] = Tabla;
Tclgo. Csar Vanegas Mendoza Pgina 21
Manual de Programacin Visual C# con SQL Server 2008
catch (SqlException ex)
{
[Link]("Error:" + ex, "SQL Expeccion",
[Link]);
}
}
private void btnBuscar_Click(object sender, EventArgs e)
{
LLenarDatagrid();
}
private void FrmProductosPorPrecio_Load(object sender, EventArgs e)
{
LLenarDatagrid();
}
}
}
6. MOSTRAR NOMBRE, PRECIO, CATEGORA Y PROVEEDOR DE LOS
PRODUCTOS QUE EMPIECEN CON UNA DETERMINADA LETRA:
Cdigo SQL:
CREATE PROC [dbo].[BuscarProductosEmpiecenUnaLetra]
@Descripcion nvarchar(50)
as
SELECT [Link], [Link],
[Link], [Link],
[Link] FROM [Link]
INNER JOIN [Link] ON [Link] =
[Link] INNER JOIN [Link] ON
[Link] = [Link]
WHERE [Link] like @Descripcion+'%'
Interface en Visual:
Tclgo. Csar Vanegas Mendoza Pgina 22
Manual de Programacin Visual C# con SQL Server 2008
Cdigo visual, para poder mostrar los datos:
using [Link];
namespace WinapiManual
{
public partial class FrmBuscarproductosEmpiecenConLetra : Form
{
public FrmBuscarproductosEmpiecenConLetra()
{
InitializeComponent();
}
ConexionBaseDatos c = new ConexionBaseDatos();
SqlCommand Comando;
SqlDataAdapter Adaptador;
DataTable Tabla;
private void LLenarDatagrid()
{
try
{
Comando = new SqlCommand("BuscarProductosEmpiecenUnaLetra",
[Link]);
[Link]("@Descripcion",
[Link],50).Value = [Link];
[Link] = [Link];
Adaptador = new SqlDataAdapter(Comando);
Tabla = new DataTable();
[Link](Tabla);
[Link] = Tabla;
}
catch (SqlException ex)
{
Tclgo. Csar Vanegas Mendoza Pgina 23
Manual de Programacin Visual C# con SQL Server 2008
[Link]("Error:" + ex, "SQL Expeccion",
[Link]);
}
}
private void btnTodos_Click(object sender, EventArgs e)
{
[Link]();
}
private void FrmBuscarproductosEmpiecenConLetra_Load(object sender,
EventArgs e)
{
LLenarDatagrid();
}
private void txtBuscar_TextChanged(object sender, EventArgs e)
{
LLenarDatagrid();
}
}
}
7. VISUALIZAR LOS PRODUCTOS QUE PERTENECEN A UN DETERMINADO
PROVEEDOR:
Cdigo SQL:
CREATE PROC [dbo].[BUSCARPRODUCTOSPORPROVEEDOR]
@PROVE NVARCHAR(50)
AS
SELECT [Link], [Link],
[Link], [Link],
[Link],
[Link],[Link],
[Link]
FROM [Link] INNER JOIN [Link] ON
[Link] = [Link]
INNER JOIN [Link] ON [Link] =
[Link]
WHERE [Link] =@PROVE
CREATE PROC [dbo].[TODOSLOSPROVEEDORES]
AS
SELECT * FROM Proveedores
Interface en Visual:
Tclgo. Csar Vanegas Mendoza Pgina 24
Manual de Programacin Visual C# con SQL Server 2008
Cdigo visual, para poder mostrar los datos:
using [Link];
namespace WinapiManual
{
public partial class FrmBuscarProductosPorProveedor : Form
{
public FrmBuscarProductosPorProveedor()
{
InitializeComponent();
}
ConexionBaseDatos c = new ConexionBaseDatos();
SqlCommand Comando;
SqlDataAdapter Adaptador;
DataTable Tabla;
private void LLenarLista()
{
Comando = new SqlCommand("TODOSLOSPROVEEDORES", [Link]);
[Link] = [Link];
Adaptador = new SqlDataAdapter(Comando);
Tabla = new DataTable();
[Link](Tabla);
[Link] = Tabla;
[Link] = "NomProveedor";
}
private void LLenarDatagrid()
{
try
{
Comando = new SqlCommand("BUSCARPRODUCTOSPORPROVEEDOR",
[Link]);
Tclgo. Csar Vanegas Mendoza Pgina 25
Manual de Programacin Visual C# con SQL Server 2008
[Link]("@PROVE", [Link], (50)).Value
=[Link];
[Link] = [Link];
Adaptador = new SqlDataAdapter(Comando);
Tabla = new DataTable();
[Link](Tabla);
[Link] = Tabla;
}
catch (SqlException ex)
{
[Link]("Error:" + ex, "SQL Expeccion",
[Link]);
}
}
private void lstProveedores_SelectedIndexChanged(object sender, EventArgs e)
{
LLenarDatagrid();
}
private void FrmBuscarProductosPorProveedor_Load(object sender, EventArgs e)
{
LLenarLista();
}
}
}
8. PRODUCTOS CON STOCK Y PRODUCTOS SIN STOCK:
Cdigo SQL:
Create Procedure ProductosConStock
as
select IdeProducto,Descricipcion,Precio,Stock
from Productos where Stock>0
Create Procedure ProductosSinStock
as
select IdeProducto,Descricipcion,Precio,Stock
from Productos where Stock=0
Interface en Visual:
Tclgo. Csar Vanegas Mendoza Pgina 26
Manual de Programacin Visual C# con SQL Server 2008
Cdigo visual, para poder mostrar los datos:
using [Link];
namespace WinapiManual
{
public partial class Form3 : Form
{
public Form3()
{
InitializeComponent();
}
private void productosPorCategoriaToolStripMenuItem_Click(object sender,
EventArgs e)
{
FrmNumerodeProductosporCategoria fr = new
FrmNumerodeProductosporCategoria();
[Link]=this;
[Link]();
}
private void buscarPorCategoriaToolStripMenuItem_Click(object sender, EventArgs
e)
{
FrmBuscarProductosPorCategoria fr = new
FrmBuscarProductosPorCategoria();
[Link] = this;
[Link]();
}
private void productosPorPrecioToolStripMenuItem_Click(object sender, EventArgs
e)
{
FrmProductosPorPrecio fr = new FrmProductosPorPrecio();
[Link]();
}
private void productosPorNombreToolStripMenuItem_Click(object sender, EventArgs
e)
{
Tclgo. Csar Vanegas Mendoza Pgina 27
Manual de Programacin Visual C# con SQL Server 2008
FrmBuscarproductosEmpiecenConLetra fr = new
FrmBuscarproductosEmpiecenConLetra();
[Link]();
}
private void porProveedorToolStripMenuItem_Click(object sender, EventArgs e)
{
FrmBuscarProductosPorProveedor fr = new
FrmBuscarProductosPorProveedor();
[Link]();
}
private void productosPorStockToolStripMenuItem_Click(object sender, EventArgs e)
{
FrmProductosporStock fr = new FrmProductosporStock();
[Link]();
}
}
}
9. MOSTRAR LOS PRODUCTOS VIGENTES Y LOS DESCONTINUADOS:
Modifique la tabla productos y agregue el siguiente Campo (descontinuado de tipo BIT)
En este tipo de campo se tiene que almacenar un (True(1) o False(0)) y al visualizar los
datos desde una consulta desde C# se observara un check
Cdigo SQL:
create PROC [dbo].[BUSCARPRODUCTOSDESCONTINUADOS]
@Valor as bit
AS
SELECT IdeProducto, Descricipcion, Precio,Stock,Descontinuados
FROM Productos
WHERE Descontinuados =@Valor
Interface en Visual:
Tclgo. Csar Vanegas Mendoza Pgina 28
Manual de Programacin Visual C# con SQL Server 2008
Cdigo visual, para poder mostrar los datos:
using [Link];
namespace WinapiManual
{
public partial class FrmBuscarproductosDescontinuados : Form
{
public FrmBuscarproductosDescontinuados()
{
InitializeComponent();
}
ConexionBaseDatos c = new ConexionBaseDatos();
SqlCommand Comando;
SqlDataAdapter Adaptador;
DataTable Tabla;
int valor;
private void LLenarDatagrid()
{
try
{
if ([Link])
valor = 1;
else
valor = 0;
Comando = new SqlCommand("BUSCARPRODUCTOSDESCONTINUADOS",
[Link]);
[Link]("@Valor", [Link]).Value =
valor;
[Link] = [Link];
Adaptador = new SqlDataAdapter(Comando);
Tabla = new DataTable();
[Link](Tabla);
[Link] = Tabla;
Tclgo. Csar Vanegas Mendoza Pgina 29
Manual de Programacin Visual C# con SQL Server 2008
}
catch (SqlException ex)
{
[Link]("Error:" + ex, "SQL Expeccion",
[Link]);
}
}
private void FrmBuscarproductosDescontinuados_Load(object sender,
EventArgs e)
{
LLenarDatagrid();
}
private void chkDescontinuados_CheckedChanged(object sender,
EventArgs e)
{
LLenarDatagrid();
}
}
}
PRCTICA III
CREACIN DE LA CLASE CONEXIN:
using [Link];
namespace WinapiManual
{
public class ConexionBaseDatos
{
public SqlConnection Conexion = new SqlConnection("Data Source = USUARIO-PC;
Initial Catalog = Manual; Integrated Security = True");
}
}
1. EN UN LISTBOX O COMBOBOX, COLOCAR EL SIGUIENTE TEXTO (SON LOS
TIPOS DE BUSQUEDA):
El proceso es seleccionar un tipo de bsqueda en la Lista, luego escribir un texto en
el TextBox y al darle <ENTER> al TextBox, se debe filtrar el DatagridView por el
Tclgo. Csar Vanegas Mendoza Pgina 30
Manual de Programacin Visual C# con SQL Server 2008
nombre del producto, respetando el tipo de bsqueda seleccionado.
Los datos que deben salir en el DatagridView son: IdeProducto, Descripcion, Precio,
Stock, Categoria, Proveedor.
Cdigo SQL:
CREATE PROC [dbo].[BUSCARPRODUCTOSSEGUNOPCIONES]
@NOMBRE NVARCHAR(50),
@TIPO INT
AS
if(@TIPO=0)
SELECT [Link], [Link],
[Link], [Link],
[Link],
[Link],[Link],
[Link]
FROM [Link] INNER JOIN [Link] ON
[Link] = [Link]
INNER JOIN [Link] ON [Link] =
[Link]
WHERE [Link] Like @NOMBRE+'%'
else if(@TIPO=1)
SELECT [Link], [Link],
[Link], [Link],
[Link],
[Link],[Link],
[Link]
FROM [Link] INNER JOIN [Link] ON
[Link] = [Link]
INNER JOIN [Link] ON [Link] =
[Link]
WHERE [Link] Like '%'+@NOMBRE
else if(@TIPO=2)
SELECT [Link], [Link],
[Link], [Link],
[Link],
[Link],[Link],
[Link]
FROM [Link] INNER JOIN [Link] ON
[Link] = [Link]
INNER JOIN [Link] ON [Link] =
[Link]
WHERE [Link] Like '%'+@NOMBRE+'&'
else if(@TIPO=3)
SELECT [Link], [Link],
[Link], [Link],
[Link],
[Link],[Link],
[Link]
FROM [Link] INNER JOIN [Link] ON
[Link] = [Link]
INNER JOIN [Link] ON [Link] =
[Link]
WHERE [Link] Not Like '%'+@NOMBRE+'&'
Tclgo. Csar Vanegas Mendoza Pgina 31
Manual de Programacin Visual C# con SQL Server 2008
else
SELECT [Link], [Link],
[Link], [Link],
[Link],
[Link],[Link],
[Link]
FROM [Link] INNER JOIN [Link] ON
[Link] = [Link]
INNER JOIN [Link] ON [Link] =
[Link]
WHERE [Link] =@NOMBRE
Interface en Visual:
Cdigo visual, para poder mostrar los datos:
using [Link];
namespace WinapiManual
{
public partial class FrmBuscarProductosSegunOpcion : Form
{
public FrmBuscarProductosSegunOpcion()
{
InitializeComponent();
}
ConexionBaseDatos c = new ConexionBaseDatos();
SqlCommand Comando;
SqlDataAdapter Adaptador;
DataTable Tabla;
int valor;
private void LLenarDatagrid()
{
try
{
Comando = new SqlCommand("BUSCARPRODUCTOSSEGUNOPCIONES",
[Link]);
[Link]("@NOMBRE", [Link],50).Value
= [Link];
Tclgo. Csar Vanegas Mendoza Pgina 32
Manual de Programacin Visual C# con SQL Server 2008
[Link]("@TIPO", [Link]).Value =
[Link];
[Link] = [Link];
Adaptador = new SqlDataAdapter(Comando);
Tabla = new DataTable();
[Link](Tabla);
[Link] = Tabla;
}
catch (SqlException ex)
{
[Link]("Error:" + ex, "SQL Expeccion",
[Link]);
}
}
private void FrmBuscarProductosSegunOpcion_Load(object sender,
EventArgs e)
{
[Link] = 0;
LLenarDatagrid();
}
private void txtBuscar_TextChanged(object sender, EventArgs e)
{
LLenarDatagrid();
}
private void btnTodos_Click(object sender, EventArgs e)
{
[Link] = 0;
[Link]();
LLenarDatagrid();
}
}
}
2. EN UN GRUPO DE RADIOBUTTON, COLOCAR LOS FILTROS COMO SE MUESTRA
EN LA PANTALLA.
El procedimiento es seleccionar un filtro, luego darle un click en el botn, para
que aparezcan los datos de los Productos en el DataGridView.
Los campos a mostrar en el DataGridView son: ProductName, UnitPrice,
UnitsinStock, CategoryID, Discontinued.
Cdigo SQL:
CREATER PROC [dbo].[BUSCARPRODUCTOSCONSTOCK]
AS
SELECT [Link], [Link],
[Link], [Link],dbo.
[Link],[Link],
[Link]
FROM [Link] INNER JOIN [Link] ON
[Link] = [Link]
INNER JOIN [Link] ON [Link]
= [Link]
WHERE [Link]>0
Tclgo. Csar Vanegas Mendoza Pgina 33
Manual de Programacin Visual C# con SQL Server 2008
CREATE PROC [dbo].[BUSCARPRODUCTOSQUEESTENDESCONTINUADOS]
AS
SELECT [Link], [Link],
[Link], [Link],dbo.
[Link],[Link],
[Link]
FROM [Link] INNER JOIN [Link] ON
[Link] = [Link]
INNER JOIN [Link] ON [Link] =
[Link]
WHERE [Link]='0'
CREATE PROC [dbo].[BUSCARPRODUCTOSQUEESTENSEGUNCATEGORIA]
@NOMBRE NVARCHAR(50)
AS
SELECT [Link], [Link],
[Link], [Link],dbo.
[Link],[Link],
[Link]
FROM [Link] INNER JOIN [Link] ON
[Link] = [Link]
INNER JOIN [Link] ON [Link] =
[Link]
WHERE [Link] LIKE '%' +@NOMBRE+'%'
CREATE PROC [dbo].[MOSTRARTODOSLOSPRODUCTOS]
AS
SELECT [Link], [Link],
[Link], [Link],dbo.
[Link],[Link],
[Link]
FROM [Link] INNER JOIN [Link] ON
[Link] = [Link]
INNER JOIN [Link] ON [Link] =
[Link]
a) DISEO:
Tclgo. Csar Vanegas Mendoza Pgina 34
Manual de Programacin Visual C# con SQL Server 2008
Cdigo visual, para poder mostrar los datos:
using [Link];
namespace WinapiManual
{
public partial class FRMBUSCARPRODUCTOSSEGUNOPCIONESDERADIO : Form
{
public FRMBUSCARPRODUCTOSSEGUNOPCIONESDERADIO()
{
InitializeComponent();
}
ConexionBaseDatos c = new ConexionBaseDatos();
SqlCommand Comando;
SqlDataAdapter Adaptador;
DataTable Tabla;
private void btnSalir_Click(object sender, EventArgs e)
{
Close();
}
private void rbtnCosStock_CheckedChanged(object sender, EventArgs e)
{
Comando = new SqlCommand("BUSCARPRODUCTOSCONSTOCK", [Link]);
[Link] = [Link];
Adaptador = new SqlDataAdapter(Comando);
Tabla = new DataTable();
[Link](Tabla);
[Link] = Tabla;
[Link] = true;
[Link]();
}
private void rbtnVigentes_CheckedChanged(object sender, EventArgs e)
{
Comando = new SqlCommand("BUSCARPRODUCTOSQUEESTENDESCONTINUADOS",
[Link]);
[Link] = [Link];
Adaptador = new SqlDataAdapter(Comando);
Tabla = new DataTable();
[Link](Tabla);
[Link] = Tabla;
[Link] = true;
[Link]();
}
private void rbtncategoria_CheckedChanged(object sender, EventArgs e)
{
[Link] = false;
[Link]();
}
private void txtBuscar_TextChanged(object sender, EventArgs e)
{
Comando = new SqlCommand("BUSCARPRODUCTOSQUEESTENSEGUNCATEGORIA",
[Link]);
[Link]("@NOMBRE", [Link], 50).Value =
[Link];
[Link] = [Link];
Adaptador = new SqlDataAdapter(Comando);
Tclgo. Csar Vanegas Mendoza Pgina 35
Manual de Programacin Visual C# con SQL Server 2008
Tabla = new DataTable();
[Link](Tabla);
[Link] = Tabla;
}
private void rbtnTodos_CheckedChanged(object sender, EventArgs e)
{
Comando = new SqlCommand("MOSTRARTODOSLOSPRODUCTOS", [Link]);
[Link] = [Link];
Adaptador = new SqlDataAdapter(Comando);
Tabla = new DataTable();
[Link](Tabla);
[Link] = Tabla;
[Link] = true;
[Link]();
}
}
}
3. COLOCAR UN OBJETO MONTHCALENDAR, UN DATAGRIDVIEW Y UN TEXTBOX
Disee la siguiente tabla de datos en sql y llene con unos cuantos registros
El GridView debe mostrar: los datos de los clientes y se filtraran automaticamente al
seleccionar una fecha, se debe configurar el MonthCalendar, para que la fecha inicie el
01/01/1996 y finalice el 31/12/2014
Cdigo SQL:
CREATE PROC [dbo].[BUSCAR_CLIENTE_FECHANACI]
@FECHA DATE
AS
SELECT * FROM CLIENTES
where FECHANACI=@FECHA
Diseo Interface:
Tclgo. Csar Vanegas Mendoza Pgina 36
Manual de Programacin Visual C# con SQL Server 2008
Cdigo visual, para poder mostrar los datos:
using [Link];
namespace WinapiManual
{
public partial class FrmBuscarClientesporFechaNacimiento : Form
{
public FrmBuscarClientesporFechaNacimiento()
{
InitializeComponent();
}
ConexionBaseDatos c = new ConexionBaseDatos();
SqlCommand Comando;
SqlDataAdapter Adaptador;
DataTable Tabla;
private void LLenarDatagrid()
{
try
{
Comando = new SqlCommand("BUSCAR_CLIENTE_FECHANACI", [Link]);
[Link]("@Fecha", [Link]).Value =
[Link];
[Link] = [Link];
Adaptador = new SqlDataAdapter(Comando);
Tabla = new DataTable();
[Link](Tabla);
[Link] = Tabla;
}
catch (SqlException ex)
{
[Link]("Error:" + ex, "SQL Expeccion",
[Link]);
}
Tclgo. Csar Vanegas Mendoza Pgina 37
Manual de Programacin Visual C# con SQL Server 2008
private void btnSalir_Click(object sender, EventArgs e)
{
Close();
}
private void CalendarioFechaNaci_DateChanged(object sender,
DateRangeEventArgs e)
{
LLenarDatagrid();
}
}
}
1. COLOCAR UN OBJETO MONTHCALENDAR, UN DATAGRIDVIEW Y UN
TEXTBOX
Disee la siguiente tabla de datos en sql y llene con unos cuantos registros
El GridView debe mostrar: los datos de los clientes y se filtraran automaticamente al
seleccionar una fecha, se debe configurar el MonthCalendar, para que la fecha inicie el
01/01/1996 y finalice el 31/12/2014
Cdigo SQL:
CREATE PROC [dbo].[BUSCAR_CLIENTE_FECHANACI]
@FECHA DATE
AS
SELECT * FROM CLIENTES
where FECHANACI=@FECHA
Diseo Interface:
Tclgo. Csar Vanegas Mendoza Pgina 38
Manual de Programacin Visual C# con SQL Server 2008
Cdigo visual, para poder mostrar los datos:
using [Link];
namespace WinapiManual
{
public partial class FrmBuscarClientesporFechaNacimiento : Form
{
public FrmBuscarClientesporFechaNacimiento()
{
InitializeComponent();
}
ConexionBaseDatos c = new ConexionBaseDatos();
SqlCommand Comando;
SqlDataAdapter Adaptador;
DataTable Tabla;
private void LLenarDatagrid()
{
try
{
Comando = new SqlCommand("BUSCAR_CLIENTE_FECHANACI", [Link]);
[Link]("@Fecha", [Link]).Value =
[Link];
[Link] = [Link];
Adaptador = new SqlDataAdapter(Comando);
Tabla = new DataTable();
[Link](Tabla);
[Link] = Tabla;
}
catch (SqlException ex)
{
[Link]("Error:" + ex, "SQL Expeccion",
[Link]);
}
Tclgo. Csar Vanegas Mendoza Pgina 39
Manual de Programacin Visual C# con SQL Server 2008
private void btnSalir_Click(object sender, EventArgs e)
{
Close();
}
private void CalendarioFechaNaci_DateChanged(object sender,
DateRangeEventArgs e)
{
LLenarDatagrid();
}
}
}
Tclgo. Csar Vanegas Mendoza Pgina 40
Manual de Programacin Visual C# con SQL Server 2008
Tclgo. Csar Vanegas Mendoza Pgina 41
Tclgo. Csar Vanegas Mendoza Pgina 42
Pgina 40