Você está na página 1de 53

Data Access - Express Editons + Visual Studio .

Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 1




Data Access -
Express Editions +
Visual Studio .NET 2005






Exerccios Web e
Windows Applicatons
Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 2




ndice

Web Applications................................................................................................................ 3
GRIDVIEW........................................................................................................................ 3
DETAILSVIEW............................................................................................................... 12
FORMVIEW..................................................................................................................... 18
DATALIST....................................................................................................................... 21
CLASSE DE NEGCIO.................................................................................................. 24
TREEVIEW + XML......................................................................................................... 33
TREEVIEW + DataAdapter ............................................................................................. 36
TREEVIEW + DataReader ............................................................................................... 41
Windows Applications...................................................................................................... 44
Data Access....................................................................................................................... 44
Master / Detail................................................................................................................... 51





Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 3

Web Applications
GRIDVIEW
Objetivo: Montar um formulrio com o controle GridView. Este controle
permite exibir os dados na forma de GRID, alm de suportar diversas
funcionalidades de edio, classificao, etc.

1. Abra o Visual Web Developer 2005 Express Edition. Selecione o menu File /
New Web Site para criar um novo Web Site, conforme a seguinte figura. Note que
a linguagem o Visual Basic, mas se voc quiser criar em Visual C# no h
nenhum problema, pois os passos so os mesmos.



2. Em seguida pressione o boto OK. Ser exibida uma janela contendo a pgina
Default.aspx com o HTML exibido. Para efeito de exerccio, iremos criar pginas
relativas ao tpico abordado, portanto, exiba o Solution Explorer (Ctrl + Alt + L)
e exclua esta pgina. Para adicionar uma nova pgina, no Solution Explorer,
clique com o boto direito sobre o C:\WebSite\DCE20005 e selecione Add New
Item. Digite GridView.aspx no nome da pgina e clique em Add.
Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 4


3. Caso queira digitar as Tags HTML diretamente nesta janela, esteja vontade, no
entanto, irei mostrar os controles na janela de Design. Sendo assim, clique no
boto Design no rodap da pgina.

Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 5


4. Exiba a Toolbox e arraste um controle GridView para o formulrio. Ser aberta
uma Smart Tag contendo diversas opes.



5. Selecione Auto Format e aplique um formato de acordo com a sua necessidade.

Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 6


6. Para definir a fonte de dados, em Choose Data Source selecione New Data
Source.



7. Voc pode selecionar qualquer fonte de dados, mas neste caso escolha Database.
Perceba que j definido um ID (SqlDataSource1), e caso queira alterar basta
digitar. Como iremos utilizar esta conexo em vrios exerccios, deixe o checkbox
de conexo selecionado para que a string de conexo seja armazenada no arquivo
Web.Config.

Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 7


8. Voc precisa identificar qual a tabela a ser usada como fonte de dados.
Selecione Products e alguns campos.

Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 8

9. Como iremos permitir a edio de dados no GridView, clique no boto Advanced
para abrir esta janela onde voc ir selecionar as duas opes para que o
DataAdapter seja montado contendo todas estas instrues SQL para efetivar as
operaes.


10. Na Smart Tag so exibidos os checkboxes para voc ativar as operaes.
Selecione Enable Paging para permitir a paginao, Enable Sorting para permitir a
classificao por coluna, Enable Editing para permitir a edio de dados
diretamente no GridView e Enable Deleting para permitir a excluso de dados.
Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 9

11. Para customizar as colunas, selecione Edit Columns e aplique uma formatao no
campo Estoque de forma que seja exibido no formato numrico com zero casas
decimais (DataFormatString = {0:n0}. Voc pode aplicar qualquer formato as
colunas.
Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 10


12. Como foi permitida a edio de dados no controle, customize os botes para a
lingua onde o controle ser utilizado. Para isso, selecione o Command Field,
localize as propriedades Text de cada boto e altere o texto.

Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 11


13. Selecione Auto Format e aplique um formato de acordo com a sua necessidade.

14. Salve o projeto e pressione CTRL + F5 para execut-lo no browser. importante
destacar que o ASP.NET 2 no precisa de um IIS instalado na mquina, pois ele
monta o prprio ambiente do IIS.

Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 12
DETAILSVIEW
Objetivo: Montar um formulrio com o controle DetailsView. Este controle
exibe um registro de cada vez.

1. Adicione um novo Web Form no Solution Explorer.
2. Exiba a Toolbox e arraste um controle DetailsView para o formulrio. Ser aberta
uma janela com a Smart Tag para informar a fonte de dados, que neste caso ser a
tabela Employees do SQL Server 2000. Selectione New data source.


3. Informe qual a fonte de dados, neste caso um Database.



4. Selecione a tabela Employees com alguns campos.
Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 13


5. Clique no boto Advanced Options e selecione os dois checkboxes para que sejam
criados os mtodos para suportar a incluso e edio de dados.
Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 14


6. Retornando a Smart Tag, selecione todos os checkboxes para ativar a paginao e
a manuteno de dados.


7. Customize o campo que exibe uma data para ficar com o formato de acordo com a
propriedade DataFormatString, sendo {0:dd/MM/yyyy}. O 0: indica que ser o
campo atual e o formato vem a seguir.
Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 15


8. Se voc analisar o cdigo HTML gerado, ir notar que o contedo da fonte de
dados est declarado dentro do HTML atravs da Tag asp:SqlDataSource.

<form id="form1" runat="server">
<asp:DetailsView ID="DetailsView1" Runat="server
DataSourceID="SqlDataSource1"
AutoGenerateRows="False" DataKeyNames="EmployeeID" AllowPaging="True">
<Fields>
<asp:BoundField ReadOnly="True" DataField="EmployeeID"/>
<asp:BoundField DataField="BirthDate"
DataFormatString="{0:dd/MM/yyyy}"/>
...
<asp:CommandField ShowDeleteButton="True" ShowInsertButton="True
ShowEditButton="True"/>
</Fields>
</asp:DetailsView>
<asp:SqlDataSource ID="SqlDataSource1" Runat="server"
Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 16
DeleteCommand="DELETE FROM [Employees] WHERE
[EmployeeID]=@original_EmployeeID ... [Photo]=@original_Photo"
InsertCommand="INSERT INTO [Employees] ([LastName] ... [Photo])
VALUES (@LastName ... @Photo)"
SelectCommand="SELECT [EmployeeID] ... [Address] FROM [Employees]
UpdateCommand="UPDATE [Employees] SET [LastName] = @LastName ... AND
[Photo] = @original_Photo"
ConnectionString="<%$ ConnectionStrings:AppConnectionString1 %>">
<DeleteParameters>
<asp:Parameter Name="original_EmployeeID"></asp:Parameter>
...
<asp:Parameter Name="original_Photo"></asp:Parameter>
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Type="String" Name="LastName"></asp:Parameter>
...
<asp:Parameter Name="original_Photo"></asp:Parameter>
</UpdateParameters>
<InsertParameters>
<asp:Parameter Type="String" Name="LastName"></asp:Parameter>
...
<asp:Parameter Name="Photo"></asp:Parameter>
</InsertParameters>
</asp:SqlDataSource>
</form>


9. Salve o projeto e execute-o no browser. Inclua um novo registro e salve-o. Em
seguida, altere o contedo e salve novamente.
Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 17


Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 18
FORMVIEW
Objetivo: Montar um formulrio com o controle FormView. Este controle
exibe um registro de cada vez com um Label e o contedo do registro.

1. Adicione um novo Web Form no Solution Explorer. Arraste o controle FormView
para o formulrio.



2. A fonte de dados ser um Database. Selecione a tabela Customers do banco de
dados Northwind e todos os campos.


3. Aplique um Auto Format conforme a necessidade.
Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 19


4. Ajuste o layout de forma que caibam todos os dados.


5. Salve o projeto e execute-o no browser. Navegue nas pginas para visualizar os
registros.
Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 20


Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 21
DATALIST
Objetivo: Montar um formulrio com o controle DataList. Este controle
exibe diversos registros na mesma pgina, onde voc deve determinar a rea
de dados e o respectivo layout.

1. Adicione um novo Web Form no Solution Explorer. Arraste o controle DataList
para o formulrio.


2. A tabela usada ser a Orders com alguns campos.


3. Customize o campo OrderDate para que a data seja exibida no formato adequado.
Para isso, selecione o OrderDateLabel e o link Edit DataBindings. Configure o
formato para Short Date.
Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 22


4. Note no HTML que a propriedade chave para exibir os dados a Text, onde usa o
Eval(field).

<asp:DataList ID="DataList1" Runat="server
DataSourceID="SqlDataSource1" RepeatColumns="3">
<ItemTemplate>
<b>OrderID: </b>
<asp:Label ID="OrderIDLabel" Text='<%# Eval("OrderID") %>'/>
OrderDate:
<asp:Label ID="OrderDateLabel" Text='<%# Eval("OrderDate", "{0:d}")
...
ShipCountry:
<asp:Label ID="ShipCountryLabel" Text='<%# Eval("ShipCountry")%>'/>
</ItemTemplate>
</asp:DataList>
<asp:SqlDataSource ID="SqlDataSource1" Runat="server
SelectCommand="SELECT [OrderID], [OrderDate], [ShipName],
[ShipAddress], [ShipCity], [ShipCountry] FROM [Orders]
ConnectionString="<%$ ConnectionStrings:AppConnectionString1 %>">
</asp:SqlDataSource>
Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 23
5. Salve o projeto e execute-o no browser.



Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 24
CLASSE DE NEGCIO
Objetivo: Definir uma classe de negcio contendo mtodos para acessar um
banco de dados e retornar um DataSet, o qual ser utilizado em qualquer tipo
de projeto.

1. No Solution Explorer, adicione um novo projeto do tipo Class Library chamado
DataAccess.

2. Como iremos acessar o SQL Server 2000, na primeira linha da tela, digite os
Namespaces que contm os mtodos e propriedades para efetuar o acesso. Vale
dizer que a classe SqlClient foi criada apenas para o SQL Server 7 ou superior.
Qualquer outra verso do SQL dever usar o OLEDB.
VB.NET
Imports System.Data
Imports System.Data.SqlClient

C#
using System.Data;
using System.Data.SqlClient;


3. Digite o mtodo chamado GetCategories que retorna um DataSet. Este mtodo
utilizar a string de conexo chamada myConn que est armazenada no arquivo
Web.Config; monta uma instruo SQL que seleciona todos os campos da tabela
Categories; define a conexo e o Command que efetiva o Select; monta um
DataAdapter e um DataSet; preenche o DataAdapter no respectivo DataSet
definido e retorna o mesmo. J o mtodo GetProducts recebe como argumento o
cdigo da categoria e retorna um Dataset. Este cdigo ser usado como critrio na
instruo SQL para pesquisar todos os produtos da respectiva categoria.

VB.NET
Public Class DataAccess
Public Shared Function GetCategories() As DataSet
Dim conexao As String =
ConfigurationSettings.ConnectionStrings(myConn").ConnectionString()
Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 25
Dim sql As String = "SELECT * FROM Categories"
Dim conn As New SqlConnection(conexao)
Dim command As New SqlCommand(sql, conn)
Dim adapter As New SqlDataAdapter(command)
Dim ds As New DataSet
adapter.Fill(ds)
Return ds
End Function

Public Shared Function GetProducts(ByVal cat As Integer) As DataSet
Dim conexao As String =
ConfigurationSettings.ConnectionStrings(myConn").ConnectionString()
Dim conn As New SqlConnection(conexao)
Dim command As New SqlCommand()
command.Connection = conn
command.CommandType = CommandType.Text
command.Parameters.Add(New SqlParameter("@cat", cat))
command.CommandText = "SELECT ProductID, ProductName,
UnitPrice, UnitsInStock FROM Products WHERE categoryID=@cat"
Dim adapter As New SqlDataAdapter(command)
Dim ds As New DataSet
adapter.Fill(ds)
Return ds
End Function
End Class

C#
public class DataAccess
{
Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 26
public static DataSet GetCategories()
{
string conexao = "Database=northwind;server=(local);user id=sa
";
string sql = "SELECT * FROM Categories";
SqlConnection conn = new SqlConnection(conexao);
SqlCommand command = new SqlCommand(sql, conn);
SqlDataAdapter adapter = new SqlDataAdapter(command);
DataSet ds = new DataSet();
adapter.Fill(ds);
return ds;
}
public static DataSet GetProducts(int cat)
{
string conexao = "Database=northwind;server=(local);user
id=sa";
SqlConnection conn = new SqlConnection(conexao);
SqlCommand command = new SqlCommand();
command.Connection = conn;
command.CommandType = CommandType.Text;
command.Parameters.Add(new SqlParameter("@cat", cat));
command.CommandText = "SELECT ProductID, ProductName,
UnitPrice, UnitsInStock FROM Products WHERE categoryID=@cat";
SqlDataAdapter adapter = new SqlDataAdapter(command);
DataSet ds = new DataSet();
adapter.Fill(ds);
return ds;
}
}
Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 27

4. Salve o projeto. Adicione um novo Web Form no Solution Explorer. Digite
Categorias e arraste o controle DropDownList para o formulrio. Na Smart Tag,
selecione o checkbox AutoPostBack para submeter este controle ao servidor.


5. Para a fonte de dados, selecione Object, afinal, usaremos a classe definida
anteriormente. Caso queira alterar o nome do DataSource, fique vontade.


6. Na TAB Select so exibidos todos os mtodos existentes. Selecione o
GetCategories e observe que o retorno um DataSet.
Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 28


7. Como o controle um DropDownList, digite CategoryName em Data Field to
Display, pois aqui o campo a ser exibido. J em Data Field for the Value o
campo que ser armazenado quando o usurio selecionar um item, portanto, digite
CategoryID.
Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 29


8. Em seguida montaremos um GridView para exibir todos os produtos da
respectiva categoria. Selecione como Data Source o Object DataAccess e o
mtodo GetProducts.
Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 30


9. Como este mtodo requer um parmetro, informe que vir do controle
DropDownList1.
Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 31


10. Na Smart Tag, habilite a paginao e a classificao.

11. Salve o projeto e execute no browser. Selecione outras categorias e veja que o
GridView exibe todos os produtos da categoria selecionada.
Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 32


Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 33
TREEVIEW + XML
Objetivo: Definir um arquivo XML e utiliz-lo como fonte de dados para
um controle TreeView.

1. No Solution Explorer, adicione um novo item do tipo XML File chamado
myXML com a seguinte estrutura.
<?xml version="1.0" encoding="utf-8" ?>
<collection>
<book>
<title>asp.net</title>
<author>dino esposito</author>
<publisher>ms press</publisher>
</book>
<book>
<title>sql reporting services</title>
<author>tom cruise</author>
<publisher>ms press</publisher>
</book>
</collection>

2. Adicione um novo Web Form. Arraste o controle TreeView para o formulrio e
associe na fonte de dados o arquivo XML criado anteriormente.

Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 34




3. Defina um Auto Format conforme a necessidade para apresentar os dados
hierrquicos de forma vivel.
Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 35


Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 36
TREEVIEW + DataAdapter
Objetivo: Definir um cdigo que ir ler uma tabela no banco de dados,
montar um DataAdapter e preencher um controle TreeView.

1. No Solution Explorer, adicione um novo formulrio contendo um controle
TreeView. Como iremos digitar um cdigo diretamente no HTML, no rodap,
clique no boto HTML e digite o seguinte cdigo que ir ler duas tabelas
(Categories e Products) do banco de dados Northwind, montar na memria um
relacionamento entre as chaves e usar como fonte de dados para montar o
controle TreeView. Como este controle requer dados hierrquicos, ento,
montaremos um nvel com as categorias e outro nvel com os produtos das
respectivas categorias.
VB.NET
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>

<script runat="server">
Dim conexao As String = "Server=localhost;Database=Northwind;user
id=sa"

Sub Page_Load()
If Not Page.IsPostBack Then
FillNodes()
End If
End Sub

Sub FillNodes()
Dim ds As DataSet = GetData()
For Each masterRow As DataRow In ds.Tables("Categories").Rows
Dim masterNode As New
TreeNode(masterRow("CategoryName").ToString())
Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 37
TreeView1.Nodes.Add(masterNode)
For Each childRow As DataRow In
masterRow.GetChildRows("Children")
Dim childNode As New
TreeNode(childRow("ProductName").ToString())
masterNode.ChildNodes.Add(childNode)
Next
Next
End Sub

Function GetData() As DataSet
Dim conn As SqlConnection = New SqlConnection(conexao)
Dim sqlCat As String = "SELECT CategoryID, CategoryName FROM
Categories"
Dim sqlProd As String = "SELECT CategoryID, ProductName FROM
Products"
Dim daCat As SqlDataAdapter = New SqlDataAdapter(sqlCat, conn)
Dim daProd As SqlDataAdapter = New SqlDataAdapter(sqlProd,
conn)
Dim ds As DataSet = New DataSet()
daCat.Fill(ds, "Categories")
daProd.Fill(ds, "Products")
ds.Relations.Add("Children", _
ds.Tables("Categories").Columns("CategoryID"), _
ds.Tables("Products").Columns("CategoryID"))
Return ds
End Function

</script>

Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 38
C#
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>

<script runat="server">
const string conexao = "Server=localhost;Database=Northwind;user
id=sa";
void Page_Load()
{
if (! Page.IsPostBack)
FillNodes();
}

void FillNodes()
{
DataSet dst = GetData();
foreach (DataRow masterRow in dst.Tables["Categories"].Rows)
{
TreeNode masterNode = new
TreeNode((string)masterRow["CategoryName"]);
TreeView1.Nodes.Add(masterNode);
foreach (DataRow childRow in
masterRow.GetChildRows("Children"))
{
TreeNode childNode = new
TreeNode((string)childRow["ProductName"]);
masterNode.ChildNodes.Add(childNode);
}
}
Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 39
}

DataSet GetData()
{
SqlConnection conn = new SqlConnection(conexao);
string sqlCat = "Select CategoryID, CategoryName FROM
Categories";
string sqlProd = "Select CategoryID, ProductName FROM
Products";
SqlDataAdapter daCat = new SqlDataAdapter(sqlCat, conn);
SqlDataAdapter daProd = new SqlDataAdapter(sqlProd, conn);
DataSet ds = new DataSet();
daCat.Fill(ds, "Categories");
daProd.Fill(ds, "Products");
ds.Relations.Add("Children",
ds.Tables["Categories"].Columns["CategoryID"],
ds.Tables["Products"].Columns["CategoryID"]);
return ds;
}
</script>
Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 40

Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 41
TREEVIEW + DataReader
Objetivo: Definir um cdigo que ir ler uma tabela no banco de dados,
montar um DataReader e preencher um controle TreeView.

1. No Solution Explorer, adicione um novo formulrio contendo um controle
TreeView. Como iremos digitar um cdigo diretamente no HTML, no rodap,
clique no boto HTML e digite o seguinte cdigo que ir ler a tabela Employees
do banco de dados Northwind, montar um DataReader que usar como fonte de
dados para montar o controle TreeView. O DataReader a forma mais rpida de
se ler uma fonte de dados.

VB.NET
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>

<script runat="server">
Dim conexao As String = "Server=localhost;Database=Northwind;user
id=sa"
sub TreeView1_TreeNodePopulate(sender As Object, _
e As TreeNodeEventArgs)
Dim conn As New SqlConnection(conexao)
Dim sql As String = "SELECT EmployeeID, FirstName FROM
Employees"
Dim cmd As New SqlCommand(Sql, conn)
conn.Open()
Try
Dim reader As SqlDataReader = cmd.ExecuteReader()
While reader.Read()
Dim newNode As New TreeNode()
newNode.PopulateOnDemand = True
Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 42
newNode.Text = reader("FirstName").ToString()
newNode.Value = reader("EmployeeID").ToString()
e.Node.ChildNodes.Add(newNode)
End While
Finally
conn.Close()
End Try
End Sub
</script>

C#
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<script runat="server">
string conexao = "Database=northwind;server=(local);user id=sa";
void TreeView1_TreeNodePopulate(object sender, TreeNodeEventArgs e)
{
SqlConnection con = new SqlConnection(conexao);
string sql = "SELECT EmployeeID, FirstName FROM Employees";
SqlCommand cmd = new SqlCommand(sql, con);
con.Open();
using (con)
{
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
TreeNode newNode = new TreeNode();
Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 43
newNode.PopulateOnDemand = true;
newNode.Text = reader["FirstName"].ToString();
newNode.Value = reader["EmployeeID"].ToString();
e.Node.ChildNodes.Add(newNode);
}
}
}
</script>

2. Salve o projeto e execute.





Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 44
Windows Applications
Data Access
Objetivo: Montar um formulrio para exibir dados oriundos de um banco de
dados, assim como a barra de navegao e os objetos gerados.

1. Abra o Visual Basic 2005 Express Edition ou o Visual C# 2005 Express Edition.
Selecione o menu File / New Project para criar um novo projeto. Note que a
linguagem o Visual Basic, mas se voc quiser criar em Visual C# no h
nenhum problema, pois os passos so os mesmos. criado um formulrio
chamado Form1 como default. Como iremos ler uma tabela do banco de dados
Northwind do MS-Access, selecione o menu Data / Show Data Sources para
exibir a janela Data Sources. Clique no link Add New Data Source.


2. Como usaremos o MS-Access, selecione Local Database File.
Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 45


3. Clique em Browse e localize o MDB.


4. Selecione a tabela Employees e note que o nome do DataSet Northwind
DataSet. Caso queira alterar, fique vontade. Clique em Finish para encerrar o
assistente.
Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 46


5. Note que so gerados vrios objetos automaticamente relativos a esta tabela e
conexo.


6. gerado um arquivo XSD que representa o Schema dos dados, ou seja, os
campos com os respectivos tipos.
Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 47


7. O Schema pode conter diversos mtodos, como este listado abaixo.


8. Veja a estrutura da instruo SQL gerada.
Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 48


9. Na janela Data Sources, o DataSet NorthwindDataSet listado contendo a tabela
Employees com os devidos campos. Como estes dados sero exibidos em um
formulrio possvel definir em que tipo de controle cada campo ser exibido.
Por exemplo, clique no campo EmployeeID e altere para Label. Existem diversos
tipos de campos que se enquadram nesta categoria.
Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 49


10. Em relao a forma em que todo o contedo da tabela ser exposta, temos:
DataGridView, Details, None ou Customize. Neste exemplo, usaremos Details,
portanto, clique no nome da tabela Employees e troque para Details.


Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 50
11. O prximo passo arrastar a tabela Employees para dentro do formulrio.
Observe que os controles so inseridos e voc pode posicion-los da melhor
forma possvel. Alm disto, inserida uma barra de navegao vinculada aos
dados.


12. Salve o projeto e pressione F5 para executar.


Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 51
Master / Detail
Objetivo: Montar um formulrio Master / Detail com duas tabelas
vinculadas.

1. No Solution Explorer, adicione um novo formulrio. Abra a janela Data Sources,
clique com o boto direito, selecione Add New Data Source. Este DataSet dever
ter duas tabelas (Categories e Products) com alguns campos selecionados. Como a
chave entre as tabelas o CategoryID, este dever ser selecionado em ambas as
tabelas. Os demais campos ficam a seu critrio.


2. Na janela Data Sources defina que a tabela Categories ser exibida como Details e
Products como GridView. Os campos da Categories sero Labels.
Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 52


3. Arraste a tabela Categories para o formulrio e disponha os dois controles
conforme a seguinte figura. Note que so gerados todos os objetos necessrios
para preencher os Labels com os dados, assim como a barra de navegao.


4. Para montar o Master / Detail, clique no objeto CategoriesDataConnector e
selecione Configure Master Details. Informe quem a tabela Pai e a Filho.
Data Access - Express Editons + Visual Studio .Net 2005
Autor: Renato I. Haddad (Microsoft Most Valuable Professional)
Pgina: 53


5. So criados novos controles automaticamente para vincular os dados.



6. inserido um GridView para todos os produtos da respectiva categoria. Salve o
formulrio e execute-o. Caso tenha vrios formulrios no Solution Explorer, ser
preciso definir qual ser aberto. Para isto, clique com o boto direito no Solution
Explorer, selecione Properties, e em Startup object informe qual formulrio ser
executado.

Você também pode gostar