8/14/2019 Dataset_CSharp_esp
1/43
Web ProgramingWeb Programing
Ing. Alberto MorenoIng. Alberto Moreno
8/14/2019 Dataset_CSharp_esp
2/43
ObjetivoObjetivo
Mostrar las novedades en elMostrar las novedades en eldesarrollo Web con el ASP.NETdesarrollo Web con el ASP.NET
2.0, el acceso a bases de datos y2.0, el acceso a bases de datos yel lenguaje C#el lenguaje C#
8/14/2019 Dataset_CSharp_esp
3/43
Web ProgramingWeb Programing
ASP.NET 2.0 implementa diversasASP.NET 2.0 implementa diversas
funcionalidades para el desarrolladorfuncionalidades para el desarrolladorcomo productividad, administracin ycomo productividad, administracin ygestin, extensibilidad y desempeogestin, extensibilidad y desempeo
8/14/2019 Dataset_CSharp_esp
4/43
ProductividadProductividad
Nuevos controles de servidorNuevos controles de servidor
Master PagesMaster Pages
Themes y SkinsThemes y SkinsSoporte para dispositivos mvilesSoporte para dispositivos mviles
8/14/2019 Dataset_CSharp_esp
5/43
Nuevos controles deNuevos controles de
servidorservidor
Controles de DatosControles de Datos
Controles de NavegacinControles de Navegacin
Controles de LoginControles de LoginControles de Web PartsControles de Web Parts
8/14/2019 Dataset_CSharp_esp
6/43
Administracin y GestinAdministracin y Gestin
API de ConfiguracinAPI de Configuracin
HerramientaHerramienta de Admin MMCde Admin MMC
Herramienta de pre-compilacinHerramienta de pre-compilacinTracing y MonitoreoTracing y Monitoreo
8/14/2019 Dataset_CSharp_esp
7/43
8/14/2019 Dataset_CSharp_esp
8/43
cceso a ases ecceso a ases eDatosDatos
Recursos:Recursos:Clasificacin, paginacin y cache deClasificacin, paginacin y cache de
datosdatos
Actualizacin, eliminacin e insercinActualizacin, eliminacin e insercinde datosde datos
Filtros, Master-DetailFiltros, Master-Detail
8/14/2019 Dataset_CSharp_esp
9/43
cceso a ases ecceso a ases eDatosDatos
Controles Data Source:Controles Data Source:SqlDataSourceSqlDataSource
ObjectDataSourceObjectDataSource
AccessDataSourceAccessDataSource
SiteMapDataSourceSiteMapDataSource
XmlDataSourceXmlDataSource
DataSetDataSourceDataSetDataSource
8/14/2019 Dataset_CSharp_esp
10/43
ProvidersProviders
8/14/2019 Dataset_CSharp_esp
11/43
ProvidersProviders
P
8/14/2019 Dataset_CSharp_esp
12/43
Prov errov erss
P
8/14/2019 Dataset_CSharp_esp
13/43
Prov errov erss
D t S t t /t t t
8/14/2019 Dataset_CSharp_esp
14/43
DataSet t pa o /ata et t pa oTableAdapterTableAdapter
8/14/2019 Dataset_CSharp_esp
15/43
Acceso a Bases deAcceso a Bases deDatosDatos
Controles Data-bound:Controles Data-bound:GridViewGridView
DetailsViewDetailsView
FormViewFormView
TreeViewTreeView
MenuMenu
8/14/2019 Dataset_CSharp_esp
16/43
GridViewGridView
8/14/2019 Dataset_CSharp_esp
17/43
GridViewGridView
8/14/2019 Dataset_CSharp_esp
18/43
GridViewGridView
DeleteCommand="DELETE FROM [Products] WHERE [ProductID] ...">
8/14/2019 Dataset_CSharp_esp
19/43
DetailsViewDetailsView
8/14/2019 Dataset_CSharp_esp
20/43
DetailsViewDetailsView
8/14/2019 Dataset_CSharp_esp
21/43
DetailsViewDetailsView
D il Vi
8/14/2019 Dataset_CSharp_esp
22/43
DetailsVieDetailsVieww
8/14/2019 Dataset_CSharp_esp
23/43
Data SourceData Source
diEdit / I t / N /
8/14/2019 Dataset_CSharp_esp
24/43
Edit / Insert / New /Edit / Insert / New /UpdateUpdate
8/14/2019 Dataset_CSharp_esp
25/43
DetailsViewDetailsView
AllowPaging="True">
......
8/14/2019 Dataset_CSharp_esp
26/43
DetailsViewDetailsView
UpdateCommand="UpdateCommand="UPDATEUPDATE [Employees] SET [LastName] = @LastName ... AND[Employees] SET [LastName] = @LastName ... AND
[Photo] = @original_Photo"[Photo] = @original_Photo"ConnectionStringConnectionString="">="">
......
......
......
8/14/2019 Dataset_CSharp_esp
27/43
FormViewFormView
8/14/2019 Dataset_CSharp_esp
28/43
8/14/2019 Dataset_CSharp_esp
29/43
DataListDataList
8/14/2019 Dataset_CSharp_esp
30/43
8/14/2019 Dataset_CSharp_esp
31/43
Objetos de NegocioObjetos de Negociousing System.Data;using System.Data;using System.Data.SqlClient;using System.Data.SqlClient;
public class DataAccesspublic class DataAccess{{
public staticpublic static DataSet GetCategoriesDataSet GetCategories()()
{{stringstring conexaoconexao = "Database=northwind;server=(local);user id=sa ";= "Database=northwind;server=(local);user id=sa ";stringstring sqlsql = "SELECT * FROM Categories";= "SELECT * FROM Categories";SqlConnection conn = new SqlConnection(conexao);SqlConnection conn = new SqlConnection(conexao);SqlCommand command = newSqlCommand command = new SqlCommandSqlCommand(sql, conn);(sql, conn);
SqlDataAdapter adapter = newSqlDataAdapter adapter = new SqlDataAdapterSqlDataAdapter(command);(command);DataSet ds = newDataSet ds = new DataSetDataSet();();adapter.Fill(ds);adapter.Fill(ds);returnreturn dsds;;
}}
}}
8/14/2019 Dataset_CSharp_esp
32/43
Objetos de NegocioObjetos de Negocio
public staticpublic static DataSet GetProducts(int cat)DataSet GetProducts(int cat){{
string conexao = "Database=northwind;server=(local);user id=sa";string conexao = "Database=northwind;server=(local);user id=sa";SqlConnection conn = new SqlConnection(conexao);SqlConnection conn = new SqlConnection(conexao);SqlCommand command = new SqlCommand();SqlCommand command = new SqlCommand();
command.Connection = conn;command.Connection = conn;command.CommandType = CommandType.Text;command.CommandType = CommandType.Text;command.command.Parameters.AddParameters.Add(new SqlParameter(new SqlParameter("@cat", cat)("@cat", cat)););command.CommandText = "SELECT ProductID, ProductName, UnitPrice,command.CommandText = "SELECT ProductID, ProductName, UnitPrice,
UnitsInStock FROM Products WHEREUnitsInStock FROM Products WHERE categoryID=@catcategoryID=@cat";";SqlDataAdapter adapter = new SqlDataAdapter(command);SqlDataAdapter adapter = new SqlDataAdapter(command);DataSet ds = newDataSet ds = new DataSetDataSet();();adapter.Fill(ds);adapter.Fill(ds);returnreturn dsds;;
}}
D d + G idVi +Dropdo n + GridVie +
8/14/2019 Dataset_CSharp_esp
33/43
Dropdown + GridView +Dropdown + GridView +DLLDLL
rop own + r ew +rop own + r ew +
8/14/2019 Dataset_CSharp_esp
34/43
rop own + r ew +rop own + r ew +DLLDLL
8/14/2019 Dataset_CSharp_esp
35/43
TreeView + XMLTreeView + XML
asp.netasp.net
dino espositodino esposito
ms pressms press
sql reporting servicessql reporting servicestom cruisetom cruise
ms pressms press
8/14/2019 Dataset_CSharp_esp
36/43
TreeViewTreeView
const string conexao = "Server=localhost;Database=Northwind;user id=sa";const string conexao = "Server=localhost;Database=Northwind;user id=sa";void Page_Load()void Page_Load(){{
if (! Page.IsPostBack)if (! Page.IsPostBack)
FillNodesFillNodes();();}}
voidvoid FillNodesFillNodes()(){{
DataSet dst =DataSet dst = GetDataGetData();();foreachforeach (DataRow masterRow in(DataRow masterRow in dst.Tables["Categories"].Rowsdst.Tables["Categories"].Rows))
{{
TreeNode masterNode = new TreeNode((string)masterRow["CategoryName"]);TreeNode masterNode = new TreeNode((string)masterRow["CategoryName"]);TreeView1.Nodes.Add(masterNode);TreeView1.Nodes.Add(masterNode);
foreachforeach (DataRow childRow in(DataRow childRow in masterRow.GetChildRows("Children"))masterRow.GetChildRows("Children")){{
TreeNode childNode = new TreeNode((string)childRow["ProductName"]);TreeNode childNode = new TreeNode((string)childRow["ProductName"]);
masterNode.ChildNodes.Add(childNode);masterNode.ChildNodes.Add(childNode);}}
}}}}
8/14/2019 Dataset_CSharp_esp
37/43
TreeViewTreeViewDataSet GetData()DataSet GetData()
{{SqlConnection conn = new SqlConnection(conexao);SqlConnection conn = new SqlConnection(conexao);
stringstring sqlCatsqlCat = "Select CategoryID, CategoryName FROM Categories";= "Select CategoryID, CategoryName FROM Categories";
stringstring sqlProdsqlProd = "Select CategoryID, ProductName FROM Products";= "Select CategoryID, ProductName FROM Products";
SqlDataAdapter daCat = newSqlDataAdapter daCat = new SqlDataAdapter(sqlCatSqlDataAdapter(sqlCat, conn);, conn);
SqlDataAdapter daProd = newSqlDataAdapter daProd = new SqlDataAdapter(sqlProdSqlDataAdapter(sqlProd, conn);, conn);
DataSetDataSet ds = new DataSet();ds = new DataSet();daCat.daCat.FillFill(ds, "Categories");(ds, "Categories");
daProd.daProd.FillFill(ds, "Products");(ds, "Products");
ds.Relations.Add("Children",ds.Relations.Add("Children",
ds.Tables["Categories"].Columns["ds.Tables["Categories"].Columns["CategoryIDCategoryID"],"],
ds.Tables["Products"].Columns["ds.Tables["Products"].Columns["CategoryIDCategoryID"]);"]);
return ds;return ds;}}
8/14/2019 Dataset_CSharp_esp
38/43
string conexao = "Database=northwind;server=(local);user id=sa";string conexao = "Database=northwind;server=(local);user id=sa";
void TreeView1_TreeNodePopulate(object sender, TreeNodeEventArgs e)void TreeView1_TreeNodePopulate(object sender, TreeNodeEventArgs e)
{{SqlConnection con = new SqlConnection(conexao);SqlConnection con = new SqlConnection(conexao);
string sql = "SELECT EmployeeID, FirstName FROM Employees";string sql = "SELECT EmployeeID, FirstName FROM Employees";
SqlCommand cmd = newSqlCommand cmd = new SqlCommandSqlCommand(sql, con);(sql, con);
con.Open();con.Open();
using (con)using (con)
{{
SqlDataReaderSqlDataReaderreader = cmd.ExecuteReader();reader = cmd.ExecuteReader();
while (reader.Read())while (reader.Read())
{{
TreeNode newNode = new TreeNode();TreeNode newNode = new TreeNode();
newNode.PopulateOnDemand = true;newNode.PopulateOnDemand = true;
newNode.Text = reader["FirstName"].ToString();newNode.Text = reader["FirstName"].ToString();
newNode.Value = reader["EmployeeID"].ToString();newNode.Value = reader["EmployeeID"].ToString();
e.Node.ChildNodes.Add(newNode);e.Node.ChildNodes.Add(newNode);
}}
}}
}}
TreeViewTreeView
8/14/2019 Dataset_CSharp_esp
39/43
Visual C# 2005Visual C# 2005
8/14/2019 Dataset_CSharp_esp
40/43
Visual C# 2005Visual C# 2005
8/14/2019 Dataset_CSharp_esp
41/43
8/14/2019 Dataset_CSharp_esp
42/43
Visual C# 2005Visual C# 2005
8/14/2019 Dataset_CSharp_esp
43/43
Visual C# 2005Visual C# 2005