Mensajes [4] - Enviado el Martes 05 de Agosto de 2008 a las 21:54hs
AQui tenemos 1 ejercicio
LLENADO 1 COMBO CON LAS ORDENES Y MOSTAR DETALLE EN EL GRID CON WEB SERVICE EN C#
SE CREA 1 PROYECTO ENBLANCO .. LUEGO EL WEB SIDE (EL 2DO) EL 1ERO ES EL ASP
1)importar
using System.Data;
using System.Data.SqlClient;
2) Cadena de conexion
SqlConnection cn = new SqlConnection("Data Source=(local);Database=Northwind;integrated security=yes");
3) crear el metodo
[WebMethod]
public DataSet listaordenes()
{ SqlDataAdapter da = new SqlDataAdapter("usp_listar",cn);
DataSet ds = new DataSet();
da.Fill(ds);
return ds; }
[WebMethod]
public DataSet detalleordenes(int nro){
SqlDataAdapter da = new SqlDataAdapter("usp_ordenes "+ nro,cn);
DataSet ds = new DataSet();
da.Fill(ds);
return ds;
}
SqlWb --> querys .....
create proc usp_listar
as
select distinct OrderID from dbo.Orders
return
exec usp_listar
create proc usp_ordenes 10248
@nro int
as
select p.ProductName,d.UnitPrice,d.Quantity, d.UnitPrice * d.Quantity as total
from dbo.Products p , "Order Details" d ,Orders o
where o.OrderID= d.OrderID and p.ProductID = d.ProductID
and o.OrderID = @nro
4) Si queremos consumirlo agregamos 1 proyecto windows ( con los metodos creados y los valores d parametro )
luego ejecutar el proyecto y guardar el url + ?WSDL... agregar 1 erferencia web al proyecto windows
y colocar la nueva url [ IR ..nombre de referencia web ... miservicio....agregar referencia web ..]
5) ahora consumimos lo creado en el formulario despues del metodo del formulario
//public Form1()
//{
// InitializeComponent();
//}
// miservicio.Service objmiservicio = new miservicio.Service();
en la clase ...{
miservicio.Service obj = new miservicio.Service();
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack){
DataSet ds = new DataSet();
ds = obj.listaordenes();
DropDownList1.DataSource = ds;
DropDownList1.DataTextField = "OrderID";
DropDownList1.DataValueField = "OrderID";
DropDownList1.DataBind();
}
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
int nro = int.Parse(DropDownList1.SelectedItem.Value.ToString());
DataSet ds = new DataSet();
ds = obj.detalleordenes(nro);
GridView1.DataSource = ds;
GridView1.DataBind();
}
}
// DataKeyNames .. aqui se pone el codigo q sera el prametro ..
Mensajes [4] - Enviado el Martes 05 de Agosto de 2008 a las 22:05hs
Ejercicio 2 usando northwnd --- 2 gridwiev y 1 combo . Al cargar la paguina se listara todos los clientes , al escoger uno de ellos en el primer gridwiev se mostrara las ordenes que efectuo dicho cliente , si queremoslsiatra el detalle de la orden la selecionamos del gridwiev 1 y en el gridwiev 2 mostraremos los productos comprados con dicha orden . los pasos son = q el ejerc 1 .... paso 1 2 3 =
los methodos serian:
en el? WebService.cs-----------------------------------------------------------------------------
[WebMethod]
public DataSet Listarclientes() {
SqlDataAdapter da = new SqlDataAdapter("listaempleados", cn);
DataSet ds = new DataSet ();
da.Fill (ds);
return ds;
}
[WebMethod]
public DataSet Listarordenesdecliente(int nro)
{SqlDataAdapter da = new SqlDataAdapter("ordenesporcliente"+nro, cn);
DataSet ds = new DataSet();
da.Fill(ds);
return ds;}
[WebMethod]
public DataSet detalledelaorden(int nro2)
{ SqlDataAdapter da = new SqlDataAdapter("detalle_delaorden "+nro2,cn);
DataSet ds = new DataSet();
da.Fill(ds);
return ds;}
En el .aspx ------------------------------------------------------------------------
----Dentro de la clase del formulario {
miservicio.Service obj = new miservicio.Service();
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack){
DataSet ds = new DataSet();
ds = obj.Listarclientes();
DropDownList1.DataSource = ds;
DropDownList1.DataTextField="LastName";
DropDownList1.DataValueField = "EmployeeID";
DropDownList1.DataBind();
}
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
int nro = int.Parse(DropDownList1.SelectedItem.Value.ToString());
DataSet ds = new DataSet();
ds = obj.Listarordenesdecliente(nro);
GridView1.DataSource = ds;
GridView1.DataBind();
}
protected void GridView2_SelectedIndexChanged(object sender, EventArgs e)
{
}
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
DataSet ds = new DataSet();
int nro = int.Parse(GridView1.SelectedDataKey.Value.ToString());
GridView2.DataSource = obj.detalledelaorden(nro);
GridView2.DataBind(); }
----}
Procedimientos almacenados
1ero ) Listando todos los empleados
create proc listaempleado
as
select EmployeeID,LastName
from dbo.Employees
2do ) Enviando como par?metro el elemento seleccionado del DropDownList
create proc ordenesporcliente ---- se envia como parametro el empleado
@EmployeeID int
as
select distinct O.OrderID as Codigo,O.OrderDate as Fecha ,
sum(od.UnitPrice*od.Quantity - od.Discount) as Total
from dbo.Orders O ,[Order Details] od, dbo.Employees e
where O.OrderID=od.OrderID and e.EmployeeID= O.EmployeeID
and e.EmployeeID = @EmployeeID
group by O.OrderID,O.OrderDate
3ero ) Mostrando detalle de la orden
create proc detalle_delaorden --se muesta el detalle de la orden
@OrderID int
as
select p.ProductName,p.UnitPrice,p.QuantityPerUnit,
od.UnitPrice * od.Quantity as total
from "Order Details" od , dbo.Orders o, dbo.Products p
where o.OrderID = od.OrderID and od.ProductID = p.ProductID and @OrderID=o.OrderID
// DataKeyNames .. aqui se pone el codigo q sera el prametro ..
Mensajes [4] - Enviado el Martes 05 de Agosto de 2008 a las 22:08hs
Ejercicio 3? PAISES - DATA DE EMPLEADOS .. En nuestro formulario implementaremos el siguiente dise?o. El requerimiento es: al cargar la pagina se listara en el Gridview el nombre , apelido , pais, direccion y telefono de nuestros empleados , cuando escogermos un empleado del DropDownList nos mostrara en el Gridview los datos personales del empleado ( consideramos datos personales a los campos con nombes codigo , nombre,pais , fecha de nacimiento y direcion )solo del empleado selecionado , Ahora tenemos una opcion mas que es colocar un pais y que en el Gridview nos muestre la relacion de empleados que pertenecen a dicho pais
Los metodos son :
[WebMethod]
public DataSet lisatempleado() {
SqlDataAdapter da = new SqlDataAdapter("listaempleados", cn);
DataSet ds = new DataSet();
da.Fill(ds);
return ds;
}
[WebMethod]
public DataSet listarcargainicial()
{
SqlDataAdapter da = new SqlDataAdapter("usp_datostotalempleado", cn);
DataSet ds = new DataSet();
da.Fill(ds);
return ds;
}
[WebMethod]
public DataSet empleadoselecionado(int nro)
{
SqlDataAdapter da = new SqlDataAdapter("usp_datofitrado " + nro, cn);
DataSet ds = new DataSet();
da.Fill(ds);
return ds;
}
[WebMethod]
public DataSet cargapais (string cd)
{
SqlDataAdapter da = new SqlDataAdapter("empleadosdeunpais " + cd, cn);
DataSet ds = new DataSet();
da.Fill(ds);
return ds;
}
}
----------------En el Aspx va
miservicio2.WebService objservivio= new miservicio2.WebService();
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack){
DataSet ds = new DataSet();
ds = objservivio.lisatempleado();
DropDownList1.DataSource = ds;
DropDownList1.DataTextField = "LastName";
DropDownList1.DataValueField = "EmployeeID";
DropDownList1.DataBind();
DataSet dss = new DataSet();
dss = objservivio.listarcargainicial();
GridView1.DataSource = dss;
GridView1.DataBind();
}
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
DataSet ds = new DataSet();
int nro = int.Parse(DropDownList1.SelectedItem.Value.ToString());
ds = objservivio.empleadoselecionado(nro);
GridView1.DataSource = ds;
GridView1.DataBind();
}
protected void Button1_Click(object sender, EventArgs e)
{
DataSet ds = new DataSet();
string cod = TextBox1.Text;
ds = objservivio.cargapais(cod);
GridView1.DataSource = ds;
GridView1.DataBind();
}
Mensajes [4] - Enviado el Jueves 07 de Agosto de 2008 a las 19:24hs
TRABAJNDO CON CAPAS
referencias
DATOS entidad y dll
NEGOC cpa datos y cpa entidad
PRESNT cpa entidad y cpa ngocio
-------CPA ENTIDAD
private sting campo
int click derecho refactor
------CPA DATOS
En Dao
using Microsoft.ApplicationBlocks.Data;
using System.Data;
using System.Data.SqlClient;
using CapaEntidad;
public class clienteDAO{
Sqlconnection CN = new Sqlconnection("");
public DataTable listar(capaentidad.cliente objcliente)
{
return SqlHepler.ExecuteDataTable(CN,"proc",objcliete.csutomerid)
}
public DataTable listar( )
{
return SqlHepler.ExecuteDataTable(CN,"proc")
}
---NEGOCIO
using CapaEntidad;
using CapaDatos;
using System.Data;
clasenegocio {
CapaDatos.ClienteDAO objclienteDAO = new CLIENTEDAO();
CapaEntidad.Cliente objcliente = new Cliente();
public DataTableListarOrdenes(){
}
}