![]() |
António Roberto Software |
|
Linguagens de Programação
2
|
3º ano da
Licenciatura em Informática de Gestão
|
Aulas de 14 e 19 de Janeiro de 2004
WinDBAlunos - (continuação)
Opção Actualizar
Repare que a form Actualizar:
- é composta por um user control da classe ucAluno
- possui uma ComboBox com os números de todos os alunos, para o utilizador seleccionar o registo do aluno a actualizar
Stored Procedures no Microsoft Access
Foram criadas duas Stored Procedures no Access:
uma para devolver os números de todos os alunos

outra para actualizar o registo de um aluno

Classe AcessoBD
Foi acrescentada a
propriedade NumerosDosAlunos
public
{
get
{
...
cmdLerNrsAlunos =
new
OleDbCommand("spNrAlunos",Conexao);
cmdLerNrsAlunos.CommandType =
CommandType.StoredProcedure;
OleDbDataReader dr;
...
dr = cmdLerNrsAlunos.ExecuteReader();
// Leitura dos resultados com um objecto da
classe OleDbDataReader
while(
dr.Read() )
NrsAlunos.Add( dr.GetInt32(0) );
dr.Close();
...
}
}
public
void Actualizar( string Numero , string Nome, string eMail, string Telemovel )
cmdActualizar.Parameters["Nome"].Value
= Nome;
cmdActualizar.ExecuteNonQuery();
cmdActualizar.Parameters["eMail"].Value = eMail;
cmdActualizar.Parameters["Telemovel"].Value =
Telemovel;
cmdActualizar.Parameters["NrAluno"].Value =
Numero;
...
}
Form Actualizar
Preenchimento da ComboBox cboNrAlunos
Sem utilizar DataBinding
foreach
( int Nr
in
BD.NumerosDosAlunos )
cboNrAlunos.Items.Add(Nr);
cboNrAlunos.DataSource = BD.NumerosDosAlunos;
private
void cboNrAlunos_SelectionChangeCommitted(...)
string
NrAluno, Nome, eMail, Telemovel;
NrAluno = ((int)
cboNrAlunos.SelectedItem).ToString();
BD.Consultar( NrAluno,
out
Nome, out eMail,
out Telemovel );
ucAl.Numero = NrAluno;
ucAl.Nome = Nome;
ucAl.eMail = eMail;
ucAl.Telemovel = Telemovel;
ucAl.Focus();
}
Sempre que o utilizador inicia a edição das caixas de texto do user control ucAluno, este dispara o evento EditadoChange, assim como atribui o valor verdade à sua propriedade Editado.
Deste modo, sempre que o utilizador altera um
registo e depois selecciona outro aluno, é avisado se não pretende
actualizar o registo que modificou:
if
( ucAl.Editado == true
)
dlgRes = MessageBox.Show("Deseja
gravar as alterações ...
if
( dlgRes == DialogResult.Yes )
BD.Actualizar( ucAl.Numero,
ucAl.Nome, ucAl.eMail,ucAl.Telemovel );
|
Nome da Solução |
Tipo |
Código Fonte |
|
WinBDAlunos |
Windows Application |