Sie sind auf Seite 1von 0

1

ESTCB - IPCB
Departamento de Engenharia Informtica
Projecto de Sistemas Industriais
C#.NET
Parte III
ESTCB - IPCB
Departamento de Engenharia Informtica
Projecto de Sistemas Industriais, Henrique Proena - 2004/2005 2
Sumrio C#.NET
ADO.NET
DataSet
DataTable
DataColumn
DataRow
DataGrid
ESTCB - IPCB
Departamento de Engenharia Informtica
Projecto de Sistemas Industriais, Henrique Proena - 2004/2005 3
C# - ADO.NET
O ADO.NET fornece acesso consistente a fontes de dados, como por exemplo o
SQL Server, assim como a outras fontes acessveis via OLE DB, XML ou ODBC.
As aplicaes podem utilizar o ADO.NET para estabelecer ligaes a bases de
dados por forma a manipular os dados.
As classes para trabalhar com o ADO.NET esto no System.Data.xxxx, em que
xxxx refere-se especializao do fornecedor de acesso aos dados.
Deste forma, pode-se dizer que o ADO.NET um conjunto de classes para
trabalhar com dados.
Principais caractersticas:
Um sucessor do ADO mais flexvel
Um sistema desenhado para ambientes desconectados
Um modelo de programao com suporte avanado para XML
Um conjunto de classes, interfaces, estruturas e enumeraes que gerem o acesso a
dados dentro do framework
ESTCB - IPCB
Departamento de Engenharia Informtica
Projecto de Sistemas Industriais, Henrique Proena - 2004/2005 4
C# - ADO.NET
A nvel do armazenamento de Dados, o ADO.NET suporta vrios tipos:
No estruturados;
Estruturados, no-hierrquicos
Ficheiros CSV (Com ma Separated Value), Folhas Microsoft Excel, Ficheiros, o Microsoft
Exchange, o..
Hierrquicos
Documentos XML e outros
Bases de Dados Relacionais
SOL Server, Oracle, Access, ODBC, etc
2
ESTCB - IPCB
Departamento de Engenharia Informtica
Projecto de Sistemas Industriais, Henrique Proena - 2004/2005 5
C# - ADO.NET
Um fornecedor de dados para ADO.NET um conjunto de classes que pode ser
usado para efectuar ligaes a bases de dados, manipular e actualizar os dados:
SQL Server .NET Data Provider
OLE DB .NET Data Provider
ODBC .NET Data Provider
Outros (DB2/400, MySQL, ...)
XxxConnection -exemplo, SqlConnection
o XxxTransaction -exemplo, SqlTransaction
o XxxException -exemplo, SqlException
o XxxError -exemplo, SqlError
XxxCommand -exemplo, SqlCommand
o XxxParameter -exemplo, SqlParameter
XxxDataReader -exemplo, SqlDataReader
XxxDataAdapter -exemplo, SqlDataAdapter
XxxPermission -exemplo, SqlClientPermission
ESTCB - IPCB
Departamento de Engenharia Informtica
Projecto de Sistemas Industriais, Henrique Proena - 2004/2005 6
C# - ADO.NET
Cenrios Conectados
Um cenrio conectado aquele no qual os utilizadores esto permanentemente
ligados bases de dados
Vantagens:
mais fcil exercer segurana ao nvel do ambiente;
A concorrncia mais fcil de controlar;
Os dados esto mais actualizados que nos outros cenrios;
Desvantagens
necessrio haver uma ligao constante ao servidor;
Escalabilidade;
ESTCB - IPCB
Departamento de Engenharia Informtica
Projecto de Sistemas Industriais, Henrique Proena - 2004/2005 7
C# - ADO.NET
1. Abrir ligao
SqlConnection conn = new SqlConnection("SERVER=SQLSERVER; INTEGRATED SECURITY = TRUE; INITIAL
CATALOG=ISEP");
conn.Open();
2. Executar comando
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "SELECT cod, descricao FROM detalhes WHERE zona=42 ;
reader = cmd.ExecuteReader();
3. Processar linhas no reader
while(reader.Read())
{
int cod = (int)reader[O];
cmbDescricao. Items.Add(reader[1].ToString());
}
4. Fechar reader
if(!reader.IsClosed)
reader.Close();
5. Fechar ligao
conn.Close();
ESTCB - IPCB
Departamento de Engenharia Informtica
Projecto de Sistemas Industriais, Henrique Proena - 2004/2005 8
C# - ADO.NET
Cenrios Desconectados
Num ambiente desconectado, um sub-conjunto de dados pode ser copiado e
modificado independentemente e mais tarde as alteraes podem ser
introduzidas de novo na base de dados
Vantagens
Pode-se trabalhar a qualquer altura e pode-se efectuar uma ligao base de dados
apenas quando necessrio;
Outros utilizadores podem usar os recursos;
Este tipo de ambientes aumenta a escalabilidade e desempenho das aplicaes;
Desvantagens
Os dados nem sempre esto actualizados;
Podem ocorrer conflitos de dados que tm que ser resolvidos;
3
ESTCB - IPCB
Departamento de Engenharia Informtica
Projecto de Sistemas Industriais, Henrique Proena - 2004/2005 9
C# - ADO.NET
1. Abrir a ligao
SqlConnection conn = new SqlConnection("SERVER=SQLSERVER; INTEGRATED SECURITY = TRUE;
INITIAL CATALOG=ISEP");
conn.open();
2. Preencher o DataSet
System.Data.DataSet ds = new System.Data.DataSet(); System.Data.Sql.sqlDataAdapter da =
new System.Data.Sql.SqlDataAdapter();
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "SELECT * FROM [DETALHES]";
cmd.Connection = conn;
da.SelectCommand = cmd;
da.Fill(ds);
3. Fechar a ligao
conn.Close() ;
4. Processar o DataSet
foreach(DataRow r in ds.Tables[O] .Rows)
r ["preco"] = r[preco] * 1.05;
5. Abrir a ligao
conn.Open() ;
6. Actualizar a fonte de dados
System.Data.Sql.SqlDataAdapter da = new System.Data.Sql.SqlDataAdapter(
"SELECT * FROM [DETALHES]", conn); System.Data.Sql.SqlCommandBuilder cb =
new System.Data.Sql.SqlCommandBuilder(da);
da.Update(ds) ;
7. Fechar a ligao
conn.Close() ;
ESTCB - IPCB
Departamento de Engenharia Informtica
Projecto de Sistemas Industriais, Henrique Proena - 2004/2005 10
C# - ADO.NET
Namespaces necessrios
System.Data para as classes base do ADO.net (ex, DataSet).
System.Data.SqlClient para as classes correspondentes ao provider para SQL
Server;
System.Data.OleDb para as classes correspondentes ao provider para OLE DB;
System.Data.SqlTypes para as classes correspondentes aos tipos de dados
nativos do SQL Server.
System.Data.Common para as estruturas de dados, classes e interfaces
comuns a todos os providers (ex, DataSet)
System.Xml para as classes de manipulao de XML via DataSet;
ESTCB - IPCB
Departamento de Engenharia Informtica
Projecto de Sistemas Industriais, Henrique Proena - 2004/2005 11
C# - ADO.NET
// Definir uma ligao a um fornecedor do tipo OLEDB para Access OleDbConnection conn = new
OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0iData Source= C:\DSN\Teste.mdbiPersist Security
Info=False");
//Abrir a ligao
conn.Open();
//Definir um novo comando do tipo OLEDB
OleDbCommand cmd = new OleDbCommand();
//Colocar o texto do comando
cmd.CommandText = "SELECT NOME FROM PESSOA WHERE NUMERO = ?;
//Indicar ao comando qual a ligao que vai usar
cmd.Connection = conn;
//Definir um parametro do tipo inteiro para conter o "Nmero" OleDbParameter parm =
cmd.Parameters.Add(new OleDbParameter("@Numero", OleDbType.Integer));
//Colocar o valor do parametro "Nmero". Quero saber o nome do cliente cujo cdigo 1...
cmd.Parameters["@Numero"] .Value=l;
//Executar o comando que s ir retornar um valor
//Converter o resultado numa string
//Colocar o valor de retorno na respectiva caixa de texto
txtNome.Text = cmd.ExecuteScalar() .ToString();
//Fechar a ligao
conn.Close();
Executar comandos que retornem um s registo
ESTCB - IPCB
Departamento de Engenharia Informtica
Projecto de Sistemas Industriais, Henrique Proena - 2004/2005 12
C# - ADO.NET
//Definir uma ligao a um fornecedor do tipo OLEDB para Access OleDbConnection conn = new
OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0iData Source= C:\DSN\Teste.mdbiPersist Security
Info=False");
//Abrir a ligao
conn.Open();
//Definir um novo comando do tipo OLEDB
OleDbCommand cmd = new OleDbCommand();
//Colocar o texto do comando
cmd.CommandText = "INSERT INTO TRABALHOS VALUES(?, ?)";
//Indicar ao comando qual a ligao que vai usar
cmd.Connection = conn;
//Definir os parametros para inserir os valores
OleDbParameter parmNumero = cmd.Parameters.Add(new OleDbParameter("@Numero", OleDbType.Integer));
OleDbParameter parmNome = cmd.Parameters.Add(new OleDbParameter("@Nome", OleDbType.Char)) ;
// Inserir os valores
for(int i=O; i<cmbNomes.Items.Count; i++)
{
parmNumero.Value = i+l;
parmNome.Value = cmbNomes.Items[i];
//Executar o comando para inserir os valores
cmd.ExecuteNonQuery();
}
//Fechar a ligao
conn.Close();
Executar comandos que no retornem registos (inserir, actualizar ou remover
registos)
4
ESTCB - IPCB
Departamento de Engenharia Informtica
Projecto de Sistemas Industriais, Henrique Proena - 2004/2005 13
C# - ADO.NET
//Definir uma ligao a um fornecedor do tipo OLEDB para Access OleDbConnection conn = new
OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source= C:\DSN\Teste.mdb;Persist Security
Info=False");
//Abrir a ligao
conn.Open() ;
//Definir um novo comando do tipo OLEDB
OleDbCommand cmd = new OleDbCommand();
//Colocar o texto do comando
cmd.CommandText = "SELECT NOME FROM PESSOA";
//Indicar ao comando qual a ligao que vai usar
cmd.Connection = conn;
//Definir um DataReader para ler os dados
//DataReader = forward only, read only. Muito rpido.
//Executar o comando e associ-lo ao reader
OleDbDataReader reader = cmd.ExecuteReader();
//Percorrer o reader e colocar os valores
while(reader.Read())
cmbNomes.Items.Add(reader[O] .ToString());
//Se o reader no estiver fechado, fechar...
if( !reader.IsClosed )
reader.Close();
//Fechar a ligao
conn.Close() ;
Executar comandos que retornem registos para preenchimento de informao
ESTCB - IPCB
Departamento de Engenharia Informtica
Projecto de Sistemas Industriais, Henrique Proena - 2004/2005 14
C# - DataSet
Os resultados obtidos atravs da execuo de comando atravs do ADO.NET
podem ser processados directamente ou colocados num objecto ADO.NET
DataSet.
O objecto Dataset contm um ou mais objectos Data Table. Assim, os dados que
vo alimentar a aplicao esto armazenados neste objecto.
Construtores
Eventos
usado pelo .Net. No para ser utilizado directamente Dataset(SerializationInfom
StreamingContext)
Cria um Dataset, com um determinado nome Dataset(string Nome)
Cria um Dataset Dataset()
Ocorre quando o mtodo Merge falha MergeFailed
ESTCB - IPCB
Departamento de Engenharia Informtica
Projecto de Sistemas Industriais, Henrique Proena - 2004/2005 15
C# - DataSet
Propriedades
Coleco de tabelas. Contm objectos DataTable Tables
Coleco de relaes. Contm objectos DataRelation Relations
Prefixo do namespace usado quando o Dataset grava ou carrega os dados para o XML Prefix
Nome do namespace usado quando o Dataset grava ou carrega os dados para o XML Namespace
Indica se o Dataset tem ou no erros HasErrors
Definies de linguagens, usadas para comparar strings Locale
Coleco de propriedades dinmicas ExtendedProperties
Controla se o Dataset vai ou no forar constraints EnforceConstraints
Indica se o Dataset est ou no em modo Design DesignMode
Nome do Dataset DatasetName
Controla se as comparaes de strings so ou no sensveis a Maisculas / Minusculas CaseSensitive
ESTCB - IPCB
Departamento de Engenharia Informtica
Projecto de Sistemas Industriais, Henrique Proena - 2004/2005 16
C# - DataSet Mtodos
Escreve o contedo do esquema do DataSet em XML Schema, para um ficheiro, stream,
TextReader ou XMLReader.
WriteXmlSchema
Escreve o contedo do DataSet em XML, para um ficheiro, stream, TextReader ou XMLReader. WriteXml
Faz um reset ao Dataset, de forma a que fique com estado original do Dataset Reset
L informao XML schema a partir de um ficheiro, stream, TextReader ou XMLReader. ReadXmlSchema
L dados XML a partir de um ficheiro, stream, TextReader ou XMLReader. ReadXml
Carrega e sincroniza dados de outro Dataset, DataTable ou Array de DataRows para o Dataset
que chama o mtodo.
Merge
Indica se h alguma alterao pendente no Dataset. HasChanges
Devolve o schema do Dataset em XML (string) GetXmlSchema
Devolve os dados do Dataset em XML (string) GetXml
Cria um novo Dataset com o mesmo schema, mas apenas com as linhas que foram modificadas
do Dataset original
GetChanges
Novo Dataset com o mesmo schema e com os mesmos dados Copy
Cria um novo Dataset com o mesmo schema, mas sem dados Clone
Apaga todos os DataTables do Dataset Clear
Usado internamente pelo Visual Studio .Net, antes e depois de adicionar informao sobre o
Schema do Dataset
BeginInit e EndInit
Aceita / Rejeita todas as alteraes pendentes Dentro do Dataset. Funciona com um Commit /
Rollback local. Aceita todas as alteraes pendentes Dentro do Dataset. Funciona com um
Commit local.
AcceptChanges
RejectChanges
5
ESTCB - IPCB
Departamento de Engenharia Informtica
Projecto de Sistemas Industriais, Henrique Proena - 2004/2005 17
C# - DataSet
//Definir um DataSet chamado "AULAS"
DataSet dsAulas = new DataSet("AULAS");
//Definir as DataTable
DataTable dtAlunos;
DataTable dtInscricoes;
//Dizer que as tabelas pertencem ao DataSet
dtAlunos = dsAulas.Tables.Add("ALUNOS");
dtInscricoes = dsAulas.Tables.Add("INSCRICOES");
//Definir a estrutura das tabelas
dtAlunos.Columns.Add("NUMERO", typeof(int));
dtAlunos.Columns.Add("NOME", typeof(string));
dtInscricoes.Columns.Add("NUMERO_ALUNO", typeof(int));
dtInscricoes.Columns.Add("NUMERO_DISCIPLINA", typeof(int));
//Definir as chaves primrias das tabelas
dtAlunos.Constraints.Add("PK_ALUNOS", dtAlunos.Columns["NUMERO"], true);
dtInscricoes.Constraints.Add("PK_INSCRICOES", new
DataColumn[] {dtInscricoes.Columns["NUMERO_ALUNO"], dtInscricoes.Columns["NUMERO_DISCIPLINA"]},
true);
//Definir as relaes entre as tabelas
dsAulas.Relations.Add("R_ALUNO_DISCIPLINAS",dtAlunos.Columns["NUMERO"],dtInscricoes.Columns["NUME
RO_ALUNO"]);
//Mostrar o DataSet numa grelha
dgAulas.DataSource = dsAulas;
//Mostrar uma tabela especifica do DataSet
dgAulas.DataMember = "ALUNOS";
Criar um DataSet programaticamente
ESTCB - IPCB
Departamento de Engenharia Informtica
Projecto de Sistemas Industriais, Henrique Proena - 2004/2005 18
C# - DataSet
Um objecto Dataset consiste num repositrio de dados em memria, no lado do
cliente, e apresenta-se como o principal representante do conjunto de objectos
do modelo ADO.NET a suportar a arquitectura desconectada.
Um objecto Dataset nada sabe acerca da fonte de dados de onde provm os seus
dados, podendo estes provirem de diferentes bases de dados. Isto acontece
porque, o objecto Data Adapter serve de ponte entre o DataSet e a base de
dados, pois utiliza a informao de como ligar e aceder base de dados (a partir
dos objectos connection e command), ao mesmo tempo que proporciona
mtodos para preencher o DataSet de dados, assim como para efectivar a
alterao dos dados, realizada ao nvel do DataSet, na fonte de dados.
Um objecto Dataset consiste numa hierarquia de um ou mais objectos Data Table
e Data Relation.
ESTCB - IPCB
Departamento de Engenharia Informtica
Projecto de Sistemas Industriais, Henrique Proena - 2004/2005 19
C# - DataSet
ESTCB - IPCB
Departamento de Engenharia Informtica
Projecto de Sistemas Industriais, Henrique Proena - 2004/2005 20
C# - DataSet
Um objecto Data Table consiste de um ou mais objectos Data Column, Data Row
e Constraint.
Um objecto Data Relation define o modo como as tabelas de um objecto Dataset
esto relacionadas. O objecto Data Relation essencialmente utilizado para gerir
as restries e, desse modo, simplificar a navegao entre tabelas relacionadas.
Os objectos Data Column definem os dados em cada coluna da tabela, incluindo
o seu nome, tipo de dados, etc.
Os objectos Data Row contm os dados para cada registo da tabela.
Os objectos Constraint so utilizados para manter a integridade dos dados. Uma
restrio de chave primria assegura que os valores numa coluna, tal como a
coluna de chave primria, so nicos. Uma restrio de chave forasteira
determina como os registos de uma tabela so afectados quando os registos
correspondentes duma tabela relacionada so alterados ou eliminados.
6
ESTCB - IPCB
Departamento de Engenharia Informtica
Projecto de Sistemas Industriais, Henrique Proena - 2004/2005 21
C# - DataTable
Construtores
usado pelo .Net. No para ser utilizado directamente DataTable(SerializationInfo
StreamingContext)
Cria um novo DataTable com um determinado nome DataTable(nome)
Cria um novo DataTable DataTable()
Antes de uma linha ser apagada RowDeleting
Depois de uma linha ser apagada RowDeleted
Antes do contedo de uma linha ser alterado RowChanging
Depois do contedo de uma linha ser alterado RowChanged
Antes do contedo de uma coluna ser alterado ColumnChanging
Depois do contedo de uma coluna ser alterado ColumnChanged
Eventos
ESTCB - IPCB
Departamento de Engenharia Informtica
Projecto de Sistemas Industriais, Henrique Proena - 2004/2005 22
C# - DataTable
Propriedades
Nome da DataTable TableName
Coleco de linhas (DataRow) da tabela Rows
Array de DataColumns com a chave primria PrimaryKey
Coleco com DataRelations, que contm dados pai ParentRelations
Prefixo do namespace usado quando o DataTable grava ou carrega os dados para o XML Prefix
Nome do namespace usado quando o DataTable grava ou carrega os dados para o XML Namespace
Quantidade (em linhas-rows) de memria que o DataTable reserva inicialmente MinimumCapacity
Definies de linguagens, usadas para comparar strings Locale
Indica se h algum erro na tabela HasErrors
Coleco de propriedades dinmicas ExtendedProperties
Indica se o DataTable est em modo design DesignMode
DataView por defeito DefaultView
Dataset onde o DataTable est (null se no estiver associado a nenhums dataset) DataSet
Coleco de constraints Constraints
Coleco de colunas (DataColumn) Columns
Coleco com DataRelations, que contm dados dependentes ChildRelations
Controla se ou no sensvel a maiusculas/minu. CaseSensitive
ESTCB - IPCB
Departamento de Engenharia Informtica
Projecto de Sistemas Industriais, Henrique Proena - 2004/2005 23
C# - DataTable
Mtodos
Devolve um array de DataRows, baseado num determinado critrio de pesquisa Select
Faz um reset ao DataTable, de forma a que fique com estado original do DataTable Reset
Cria e devolve uma nova linha do DataTable (vazia) NewRow
Adiciona uma linha ao DataTable, passando os valores dessa linha atravs de um array LoadDataRow
Importa uma linha j existente para o DataTable ImportRow
Devolve um array de DataRows, referentes s linhas que tm erros GetErrors
Cria um novo DataTable com o mesmo schema, mas apenas com as linhas que foram modificadas
do DataTable original
GetChanges
Devolve o valor de uma expresso agregada (ex: sum, max,...), baseado no conteudo do DataTable Compute
Cria um novo DataTable, com o mesmo schema e mesmo dados Copy
Cria um novo DataTable, com o mesmo schema, mas sem dados Clone
Apaga todas as linhas do DataTable Clear
Desliga e volta a ligar as constraints. Util para carregar dados BeginLoadData
EndLoadData
Usado internamente pelo Visual Studio .Net, antes e depois de adicionar informao sobre o Schema
do Dataset
BeginInit EndInit
Aceita/rejeita todas as alteraes pendentes da tabela (como commit/rollback para dados locais) AcceptChanges
RejectChanges
ESTCB - IPCB
Departamento de Engenharia Informtica
Projecto de Sistemas Industriais, Henrique Proena - 2004/2005 24
C# - DataColumn Propriedades
Controla se a coluna necessita ou no de ter valores unicos Unique
DataTable a que pertence a coluna Table
Controla se a coluna ou no s de leitura ReadOnly
Indice da coluna na coleco de colunas do DataTable Ordinal
Prefixo do namespace usado grava ou carrega os dados para o XML Prefix
Nome do namespace usado quando grava ou carrega os dados para o XML Namespace
Tamanho mximo das colunas string MaxLength
Coleco de propriedades dinmicas ExtendedProperties
linhasControla como o ADO.Net calcula o valor da coluna (para colunas baseadas em
expresses)
Expression
Controla o valor por defeito para esta coluna, quando so criadas novas DefaultValue
Controla o tipo de dados armazenado pela coluna DataType
Nome do objecto DataColumn ColumnName
Controla como o ADO.Net armazena o conteudo da coluna em XML ColumnMapping
Titulo da coluna quando numa grelha Caption
controla quanto o autoincrementa salta AutoIncrementStep
1 valor do autoincrement AutoIncrementSeed
Controla se a coluna gere valores autoincrement AutoIncrement
Controla se a coluna aceita ou no NULLs AllowDBNull
7
ESTCB - IPCB
Departamento de Engenharia Informtica
Projecto de Sistemas Industriais, Henrique Proena - 2004/2005 25
C# - DataRow
Propriedades
Tabela a que pertence o DataRow Table
Estado da linha. Valores possveis: Added; Deleted; Detached (linha no pretence ainda
a um DataTable); Modified; Unchanged
RowState
Informao sobre o erro associada linha RowError
Acesso aos valores da linha, usando um array de objectos ItemArray
Propriedade indexada que permite o acesso (ler e alterar) os valores da linha. Indice- n
ordem da coluna; nome; referncia ao DataColumn correspondente.
Item
Indica se a linha tem ou no erros HasErrors-
ESTCB - IPCB
Departamento de Engenharia Informtica
Projecto de Sistemas Industriais, Henrique Proena - 2004/2005 26
C# - DataRow
Mtodos
Alterar a informao de erro da linha pai, com base numa DataRelatio SetParentRow
Alterar a informao de erro de uma determinada coluna SetColumnError
Indica se uma determinada coluna est ou no Nula IsNull-
Indica se a linha tem no uma determinada verso dos dados HasVersion
Devolve um array de DataRows, para as linhas pai da actual, com base numa DataRelation GetParentRows
Devolve um DataRow, para a linha pai da actual, com base numa DataRelation GetParentRow
Array de DataColumns, com todas as colunas que tm erros nesta linha GetColumnsInError
Obtem informao de erro sobre uma coluna especfica GetColumnError
Devolve um array de DataRows, para linhas dependentes da actual, com base numa
DataRelation
GetChildRows
Apaga a linha. Na realidade, a linha fica apenas marcada para apagar (RowState = Deleted) Delete
Limpa os erros associados linha ClearErrors
Inicia, Cancela ou Guarda (localmente) o processo de alterao dos dados da linha BeginEdit CancelEdit
EndEdit
Aceita ou Rejeita as alteraes da linha. AcceptChanges
RejectChanges
ESTCB - IPCB
Departamento de Engenharia Informtica
Projecto de Sistemas Industriais, Henrique Proena - 2004/2005 27
C# - Exemplos
Exemplos:
DataRow row= Tabela.Rows.Find(ValorAProcurar);
DataRow row= Tabela.Rows.Find(3323);
...
object[] criterio = new object[] {Valor1, 4343};
DataRow row= Tabela.Rows.Find(criterio);
Find- Mtodo da DataRowColection, que procura uma linha com base na sua chave
primria
ESTCB - IPCB
Departamento de Engenharia Informtica
Projecto de Sistemas Industriais, Henrique Proena - 2004/2005 28
C# - Exemplos
DataRow[] Linhas = Tabela.Select((Pais=PT) and (cidade <> Leiria));
...
Exemplos de Expresses no Select
xpto LIKE %a - xpto acaba em a
xpto LIKE a% xpto comea por a
xpto = OBrian - xpto = OBrian (1 plica = 2 plicas)
#01/01/2003# - Datas
[campo com espacos] = 23 - Campos podem ter espaos, desde que fiquem entre parentesis rectos
Ordenar linhas devolvidas pelo Select
DataRow[] Linhas = Tabela.Select(Pais=PT, Cidade DESC);
DataRow[] Linhas = Tabela.Select(Pais=PT, Cidade ASC);
Linhas com determinado RowStatus devolvidas pelo Select
DataViewRowState Estado;
Estado = DataViewRowState.ModifiedOriginal | DataViewRowState.Deleted
DataRow[] Linhas = Tabela.Select(, , Estado);
//Devolve as linhas que foram modificadas ou apagadas.
Select- Mtodo da DataTable, que devolve um array de linhas, baseado num
determinado critrio.
8
ESTCB - IPCB
Departamento de Engenharia Informtica
Projecto de Sistemas Industriais, Henrique Proena - 2004/2005 29
C# - DataGrid
O contolo DataGrid permite apresentar dados de uma tabela ou de uma coleco.
Os programadores podem selecionar quais as colunas que vo apresentar dados,
personalizar as colunas, dot-las de um cabealho e tratar os eventos que
ocorrem quando o utilizador selecciona uma linha ou clula especfica.
Fontes de dados que podem ser apresentadas numa DataGrid:
Objecto DataTable;
Objecto DataView;
Objecto ArrayList;
Qualquer componente que implemente os interfaces IListSources ou IList;
permitido apresentar um objecto DataTable contido num DataSet.
//myDataSet may contain more than one DataTable
DataTable myDataTable = myDataSet.Tables[Customers];
dataGrid1.DataSource = myDataTable;
ESTCB - IPCB
Departamento de Engenharia Informtica
Projecto de Sistemas Industriais, Henrique Proena - 2004/2005 30
C# - DataGrid
Por defeito o objecto DataGrid apresenta todas as colunas e todas as linhas da
fonte de dados (DataSource), sendo o ttulo das colunas o nome das colunas.
A propriedade CurrentCell permite obter ou especificar o Focus de uma
determinada clula.
//Set Focus to cell 3,5
mydataGrid1.CurrentCell =new DataGridCell(3,5);
O objecto DataGrid pode ser formatado em termos de apresentao. Pode-se
modificar as cores do background, das linhas, dos ttulos, das linhas
selecionadas, e etc.
De forma a criar um estilo para a DataGrid, instanciar um objecto
DataGridTableStyle, adicionar um objecto DataColumnGridStyle a cada coluna
que se pretende apresentar e finalmente associar o DataGridTableStyle
propriedade TableStyles do objecto DataGrid
ESTCB - IPCB
Departamento de Engenharia Informtica
Projecto de Sistemas Industriais, Henrique Proena - 2004/2005 31
C# - DataGrid
//Definir um DataSet chamado "AULAS
DataGridTableStyle ts1 = new DataGridTableStyle();
ts1.MappingName = Customers;
/*
Adicionar GridColumnStyle e associar um nome
ao DataColumn na DataTable
Especificar o ttulo da Coluna e o tamanho
*/
DataGridColumnStyle boolCol = new DataGridTextBoxColumn();
boolCol.MappingName = Current;
boolCol.HeaderText = IsCurrent Customer;
boolCol.Width = 150;
ts1.GridColumnStyles.Add(boolCol);
// Uma nova coluna
DataGridColumnStyle TextCol = new DataGridTextBoxColumn();
TextCol.MappingName = CustName;
TextCol.HeaderText = Customer Name;
TextCol.Width = 250;
ts1.GridColumnStyles.Add(boolCol);
//Associar o datagrigTableStyle ao GridTablestylesCollection.
DataGrid1.TableStryles.Add(ts1);

Das könnte Ihnen auch gefallen