Manual Visual C# y SQL Server
Manual Visual C# y SQL Server
DOAPLICACION
ES
Con Base de
Datos
Sintaxis:
SqlDataAdapter.Fill(DataSet, String)
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 (Windows.Forms), pero la base de
datos no est en nuestro equipo.
PRCTICA I
Para poder obtener slo los datos de los alumnos, debemos eliminar la
primera fila que corresponde a los encabezados:
Escribiremos el siguiente cdigo SQL Transact para poder migrar los datos
a la tabla:
BULK
INSERT ESTUDIANTES
FROM 'F:\Documentos\Excel\estudiantes.csv' 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
using System.Data.SqlClient;
namespace WinapiManual
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
using System.Data.SqlClient;
using System.Data;
namespace winapiWen
{
public partial class WebFormEstudiantes : System.Web.UI.Page
{
private void CargarDatos()
{
SqlConnection CN = new SqlConnection("Data Source = USUARIO-PC;
Initial Catalog = Manual; Integrated Security = True");
CN.Open();
String ConsultaSQL = "Select * from Estudiantes";
SqlDataAdapter Datos= new SqlDataAdapter(ConsultaSQL, CN);
DataSet ds = new DataSet();
Datos.Fill(ds,"Estudiantes");
DtgEstudiantes.DataMember = "Estudiantes";
DtgEstudiantes.DataSource=ds;
DtgEstudiantes.DataBind();
CN.Close();
}
Interface:
Cdigo en Visual:
using System.Data.SqlClient;
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;
Es necesario agregar una clase; para ello, sobre el proyecto clic derecho y luego
elegir la opcin agregar; finalmente clic en la opcin clase:
using System.Data.SqlClient;
namespace WinapiManual
{
public class ConexionBaseDatos
{
public SqlConnection Conexion = new SqlConnection("Data Source = USUARIO-PC;
Initial Catalog = Manual; Integrated Security = True");
}
}
Mantenimiento
Reportes
Consultas
Acerca de
Cdigo SQL:
Interface en
Visual:
using System.Data.SqlClient;
namespace WinapiManual.Resources
{
public partial class FrmNumerodeProductosporCategoria : Form
{
public FrmNumerodeProductosporCategoria()
{
InitializeComponent();
}
SqlCommand Comando;
SqlDataAdapter Adaptador;
DataTable Tabla;
ConexionBaseDatos c = new ConexionBaseDatos();
Cdigo visual para poder llamar al formulario que contiene dichos datos:
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:
AS
Interface en Visual:
using System.Data.SqlClient;
namespace WinapiManual
{
public partial class FrmBuscarProductosPorCategoria : Form
{
public FrmBuscarProductosPorCategoria()
{
InitializeComponent();
}
lstCategoria.Text;
Comando.CommandType = CommandType.StoredProcedure;
Adaptador = new SqlDataAdapter(Comando);
Tabla = new DataTable();
Adaptador.Fill(Tabla);
DtgDatos.DataSource = Tabla;
}
catch (SqlException ex)
{
MessageBox.Show("Error:" + ex, "SQL Expeccion", MessageBoxButtons.OK);
}
}
}
}
Cdigo SQL:
Interface en Visual:
using System.Data.SqlClient;
namespace WinapiManual
{
public partial class FrmProductosPorPrecio : Form
{
public FrmProductosPorPrecio()
{
InitializeComponent();
}
Cdigo SQL:
Interface en Visual:
namespace WinapiManual
{
public partial class FrmBuscarproductosEmpiecenConLetra : Form
{
public FrmBuscarproductosEmpiecenConLetra()
{
InitializeComponent();
}
}
catch (SqlException ex)
{
Cdigo SQL:
Interface en Visual:
using System.Data.SqlClient;
namespace WinapiManual
{
public partial class FrmBuscarProductosPorProveedor : Form
{
public FrmBuscarProductosPorProveedor()
{
InitializeComponent();
}
}
catch (SqlException ex)
{
MessageBox.Show("Error:" + ex, "SQL Expeccion",
MessageBoxButtons.OK);
}
}
private void lstProveedores_SelectedIndexChanged(object sender, EventArgs e)
{
LLenarDatagrid();
}
Cdigo SQL:
Interface en Visual:
namespace WinapiManual
{
public partial class Form3 : Form
{
public Form3()
{
InitializeComponent();
}
FrmBuscarproductosEmpiecenConLetra fr = new
FrmBuscarproductosEmpiecenConLetra();
fr.ShowDialog();
}
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:
Interface en Visual:
using System.Data.SqlClient;
namespace WinapiManual
{
public partial class FrmBuscarproductosDescontinuados : Form
{
public FrmBuscarproductosDescontinuados()
{
InitializeComponent();
}
}
catch (SqlException ex)
{
MessageBox.Show("Error:" + ex, "SQL Expeccion",
MessageBoxButtons.OK);
}
}
PRCTICA III
CREACIN DE LA CLASE CONEXIN:
using System.Data.SqlClient;
namespace WinapiManual
{
public class ConexionBaseDatos
{
public SqlConnection Conexion = new SqlConnection("Data Source = USUARIO-PC;
Initial Catalog = Manual; Integrated Security = True");
}
}
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)
else if(@TIPO=1)
SELECT dbo.Productos.IdeProducto, dbo.Productos.IdeCategoria,
dbo.Categoria.Nombrecategoria, dbo.Productos.Descricipcion,
dbo.Productos.Precio,
dbo.Productos.Stock,dbo.Productos.IdeProveedor,
dbo.Proveedores.NomProveedor
FROM dbo.Categoria INNER JOIN dbo.Productos ON
dbo.Categoria.IdeCategoria = dbo.Productos.IdeCategoria
INNER JOIN dbo.Proveedores ON dbo.Productos.IdeProveedor =
dbo.Proveedores.IdeProveedor
WHERE Productos.Descricipcion Like '%'+@NOMBRE
else if(@TIPO=2)
SELECT dbo.Productos.IdeProducto, dbo.Productos.IdeCategoria,
dbo.Categoria.Nombrecategoria, dbo.Productos.Descricipcion,
dbo.Productos.Precio,
dbo.Productos.Stock,dbo.Productos.IdeProveedor,
dbo.Proveedores.NomProveedor
FROM dbo.Categoria INNER JOIN dbo.Productos ON
dbo.Categoria.IdeCategoria = dbo.Productos.IdeCategoria
INNER JOIN dbo.Proveedores ON dbo.Productos.IdeProveedor =
dbo.Proveedores.IdeProveedor
WHERE Productos.Descricipcion Like '%'+@NOMBRE+'&'
else if(@TIPO=3)
SELECT dbo.Productos.IdeProducto, dbo.Productos.IdeCategoria,
dbo.Categoria.Nombrecategoria, dbo.Productos.Descricipcion,
dbo.Productos.Precio,
dbo.Productos.Stock,dbo.Productos.IdeProveedor,
dbo.Proveedores.NomProveedor
FROM dbo.Categoria INNER JOIN dbo.Productos ON
dbo.Categoria.IdeCategoria = dbo.Productos.IdeCategoria
INNER JOIN dbo.Proveedores ON dbo.Productos.IdeProveedor =
dbo.Proveedores.IdeProveedor
WHERE Productos.Descricipcion Not Like '%'+@NOMBRE+'&'
else
SELECT dbo.Productos.IdeProducto, dbo.Productos.IdeCategoria,
dbo.Categoria.Nombrecategoria, dbo.Productos.Descricipcion,
dbo.Productos.Precio,
dbo.Productos.Stock,dbo.Productos.IdeProveedor,
dbo.Proveedores.NomProveedor
FROM dbo.Categoria INNER JOIN dbo.Productos ON
dbo.Categoria.IdeCategoria = dbo.Productos.IdeCategoria
INNER JOIN dbo.Proveedores ON dbo.Productos.IdeProveedor =
dbo.Proveedores.IdeProveedor
WHERE Productos.Descricipcion =@NOMBRE
Interface en Visual:
namespace WinapiManual
{
public partial class FrmBuscarProductosSegunOpcion : Form
{
public FrmBuscarProductosSegunOpcion()
{
InitializeComponent();
}
Comando.Parameters.Add("@TIPO", SqlDbType.Int).Value =
lstOpcionesBuscar.SelectedIndex;
Comando.CommandType = CommandType.StoredProcedure;
Adaptador = new SqlDataAdapter(Comando);
Tabla = new DataTable();
Adaptador.Fill(Tabla);
DtgDatos.DataSource = Tabla;
}
catch (SqlException ex)
{
MessageBox.Show("Error:" + ex, "SQL Expeccion",
MessageBoxButtons.OK);
}
}
Cdigo SQL:
CREATER PROC [dbo].[BUSCARPRODUCTOSCONSTOCK]
AS
SELECT dbo.Productos.IdeProducto, dbo.Productos.Descricipcion,
dbo.Productos.Precio, dbo.Productos.Stock,dbo.
Proveedores.NomProveedor,dbo.Categoria.Nombrecategoria,
dbo.Productos.descontinuados
FROM dbo.Categoria INNER JOIN dbo.Productos ON
dbo.Categoria.IdeCategoria = dbo.Productos.IdeCategoria
INNER JOIN dbo.Proveedores ON dbo.Productos.IdeProveedor
= dbo.Proveedores.IdeProveedor
WHERE Productos.Stock>0
a) DISEO:
namespace WinapiManual
{
public partial class FRMBUSCARPRODUCTOSSEGUNOPCIONESDERADIO : Form
{
public FRMBUSCARPRODUCTOSSEGUNOPCIONESDERADIO()
{
InitializeComponent();
}
Disee la siguiente tabla de datos en sql y llene con unos cuantos registros
Cdigo SQL:
Diseo Interface:
using System.Data.SqlClient;
namespace WinapiManual
{
public partial class FrmBuscarClientesporFechaNacimiento : Form
{
public FrmBuscarClientesporFechaNacimiento()
{
InitializeComponent();
}
Disee la siguiente tabla de datos en sql y llene con unos cuantos registros
Cdigo SQL:
Diseo Interface:
using System.Data.SqlClient;
namespace WinapiManual
{
public partial class FrmBuscarClientesporFechaNacimiento : Form
{
public FrmBuscarClientesporFechaNacimiento()
{
InitializeComponent();
}