public static List <Leitor> ListarTodos(BaseDados bd, int primeiro, int ultimo) { string sql = $@"SELECT nleitor,nome,data_nasc,fotografia,estado FROM ( SELECT row_number() over (order by nleitor) as num, nleitor,nome,data_nasc,fotografia,estado FROM Leitores) as p WHERE num>={primeiro} and num<={ultimo}"; var dados = bd.devolveSQL(sql); List <Leitor> lista = new List <Leitor>(); foreach (DataRow linha in dados.Rows) { int nleitor = int.Parse(linha["nleitor"].ToString()); string nome = linha["nome"].ToString(); DateTime data = DateTime.Parse(linha["data_nasc"].ToString()); byte[] fotografia = (byte[])linha["fotografia"]; bool estado = bool.Parse(linha["estado"].ToString()); Leitor novo = new Leitor(nleitor, nome, data, fotografia, estado); lista.Add(novo); } return(lista); }
private void DGLeitores_SelectionChanged(object sender, SelectionChangedEventArgs e) { Leitor lt = (Leitor)DGLeitores.SelectedItem; if (lt == null) { return; } tbNome.Text = lt.nome; DPData.SelectedDate = lt.data_nascimento; string ficheiro = Utils.pastaDoPrograma() + @"\temp.jpg"; Utils.VetorParaImagem(lt.fotografia, ficheiro); //Corrigir o problema do lock ao ficheiro BitmapImage img = new BitmapImage(); img.BeginInit(); img.CacheOption = BitmapCacheOption.OnLoad; img.CreateOptions = BitmapCreateOptions.IgnoreImageCache; img.UriSource = new Uri(ficheiro); img.EndInit(); ImgFoto.Source = img; //apagar o ficheiro temp.jpg File.Delete(ficheiro); btRemover.Visibility = Visibility.Visible; btAtualizar.Visibility = Visibility.Visible; }
void ContarPaginas() { decimal npaginas = Math.Ceiling((decimal)Leitor.NrLeitores(bd) / LeitoresPorPagina); cbPaginacao.Items.Clear(); for (int i = 1; i <= npaginas; i++) { cbPaginacao.Items.Add(i); } }
private void AtualizaGrid() { if (cbPaginacao.SelectedItem == null) { DGLeitores.ItemsSource = Leitor.ListarTodos(bd); } else { int p = int.Parse(cbPaginacao.SelectedItem.ToString()); int primeiro = (p - 1) * LeitoresPorPagina; DGLeitores.ItemsSource = Leitor.ListarTodos(bd, primeiro + 1, primeiro + LeitoresPorPagina); } }
//remover private void btRemover_Click(object sender, RoutedEventArgs e) { Leitor lt = (Leitor)DGLeitores.SelectedItem; if (lt == null) { return; } Leitor.Remover(bd, lt.nleitor); LimparForm(); AtualizaGrid(); ContarPaginas(); }
//adicionar private void Button_Click(object sender, RoutedEventArgs e) { string nome = tbNome.Text; DateTime data = DPData.SelectedDate.Value; var foto = Utils.ImagemParaVetor(ImgFoto.Tag.ToString()); Leitor novo = new Leitor(0, nome, data, foto, true); novo.Adicionar(bd); LimparForm(); AtualizaGrid(); ContarPaginas(); }
public static List <Leitor> ListarTodos(BaseDados bd) { var dados = bd.devolveSQL("SELECT * FROM Leitores"); List <Leitor> lista = new List <Leitor>(); foreach (DataRow linha in dados.Rows) { int nleitor = int.Parse(linha["nleitor"].ToString()); string nome = linha["nome"].ToString(); DateTime data = DateTime.Parse(linha["data_nasc"].ToString()); byte[] fotografia = (byte[])linha["fotografia"]; bool estado = bool.Parse(linha["estado"].ToString()); Leitor novo = new Leitor(nleitor, nome, data, fotografia, estado); lista.Add(novo); } return(lista); }
//atualizar private void btAtualizar_Click(object sender, RoutedEventArgs e) { Leitor lt = (Leitor)DGLeitores.SelectedItem; if (lt == null) { return; } lt.nome = tbNome.Text; lt.data_nascimento = DPData.SelectedDate.Value; if (ImgFoto.Tag != null) { lt.fotografia = Utils.ImagemParaVetor(ImgFoto.Tag.ToString()); } lt.Atualizar(bd); LimparForm(); AtualizaGrid(); }