Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa Tarde!
tenho que fazer um sistema de cadastro e estou usando list, para armazenar os dados,e apresentando em um datagrid, como faço para salvar esses dados em arquivo .txt, e manipular conforme for preciso(alterar e excluir)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace PIM_3
{
public partial class Form4 : Form
{
private int codigo = -1;
public Form4()
{
InitializeComponent();
}
List<Aluno> cadaluno = new List<Aluno>();
private void CarregaDataGridView()
{
//Atribuo a lista ordenando por codigo ...
dgvAluno.DataSource = cadaluno.OrderBy(x => x.codigo).ToList();
}
private void Form4_Load(object sender, EventArgs e)
{
CarregaDataGridView();
}
//método que retorna o proximo codigo
//como se fosse um autoincremeto
private int ObterCodigo()
{
int retorno = 0;
//se a lista estiver vazia retorna o código 1
if (cadaluno.Count == 0)
{
retorno = 1;
return retorno;
}
//senão retona o maior código da lista mais 1
else
{
retorno = cadaluno.Max(x => x.codigo) + 1;
return retorno;
}
}
//método para limpar o textbox e maskedbox
private void LimpaControles()
{
tb_alunome.Text = "";
tb_alubairro.Text = "";
tb_alucidade.Text = "";
tb_aluestado.Text = "";
tb_alunumero.Text = "";
tb_alurua.Text = "";
msk_alucpf.Text = "";
msk_aludata.Text = "";
msk_alurg.Text = "";
}
private void btnSalvar_Click(object sender, EventArgs e)
{
//se a variável codigo for -1 é porque é um novo
//aluno a ser cadastrado
if (codigo == -1)
{
//instância do objeto aluno
var alu = new Aluno();
//passo os valores para o objeto
alu.codigo = ObterCodigo();
alu.nome = tb_alunome.Text;
alu.rua = tb_alurua.Text;
alu.cidade = tb_alucidade.Text;
alu.bairro = tb_alubairro.Text;
alu.est = tb_aluestado.Text;
alu.numero = Convert.ToInt32(tb_alunumero.Text);
alu.set_nascimento(Convert.ToDateTime(msk_aludata.Text));
alu.set_rg(msk_alurg.Text);
alu.set_cpf(msk_alucpf.Text);
//adiciono o objeto a lista
cadaluno.Add(alu);
////chamo o método que carrega o grid
CarregaDataGridView();
//limpo os controles
LimpaControles();
//exibo a mensagem de sucesso
MessageBox.Show("Aluno inserido com sucesso!");
}
//senão é uma alteração
else
{
//pego o codigo do aluno que está na celula 0 do grid
int cod = Convert.ToInt32(dgvAluno.CurrentRow.Cells[0].Value);
//capturo o aluno a ser alterado
var alu = cadaluno.SingleOrDefault(x => x.codigo == cod);
//faço as alterações no mesmo
alu.nome = tb_alunome.Text;
alu.rua = tb_alurua.Text;
alu.numero = Convert.ToInt32(tb_alunumero.Text);
alu.cidade = tb_alucidade.Text;
alu.bairro = tb_alubairro.Text;
alu.est = tb_aluestado.Text;
alu.set_nascimento(Convert.ToDateTime(msk_aludata.Text));
alu.set_rg(msk_alurg.Text);
alu.set_cpf(msk_alucpf.Text);
//carrego o grid
CarregaDataGridView();
//limpo controles
LimpaControles();
//E atribuo -1 a variável de controle de alteração/inserção...
codigo = -1;
//mensagem de sucesso
MessageBox.Show("Aluno Alterado com sucesso!");
}
}
private void btnAlterar_Click(object sender, EventArgs e)
{
//verifico se o grid há linhas selecionadas
if (dgvAluno.CurrentRow != null)
{
//capturo o codigo da grid
int cod = Convert.ToInt32(dgvAluno.CurrentRow.Cells[0].Value);
//passo o código para a variável codigo de controle
codigo = cod;
//recupero o aluno que desejo alterar
var alu= cadaluno.SingleOrDefault(x => x.codigo == cod);
//insiro seus valores nos controles
tb_alunome.Text = alu.nome;
tb_alurua.Text = alu.rua;
tb_alucidade.Text = alu.cidade;
tb_alubairro.Text = alu.bairro;
tb_aluestado.Text = alu.est;
tb_alunumero.Text = (Convert.ToString(alu.numero));
}
//senão exibo a mensagem de seleção
else
{
MessageBox.Show("Você deve selecionar um aluno!");
}
}
private void btnExcluir_Click(object sender, EventArgs e)
{
if (dgvAluno.CurrentRow != null)
{
int cod = Convert.ToInt32(dgvAluno.CurrentRow.Cells[0].Value);
var prof = cadaluno.SingleOrDefault(x => x.codigo == cod);
//recupero o objeto aluno e excluo ele da lista recarrego
//o grid e exibo a mensagem de sucesso
cadaluno.Remove(prof);
CarregaDataGridView();
MessageBox.Show("Aluno Excluído com sucesso");
}
//senão exibo a mensagem de seleção
else
{
MessageBox.Show("Você deve selecionar um aluno!");
}
}
private void Form4_FormClosing(object sender, FormClosingEventArgs e)
{
if (MessageBox.Show(" Deseja fechar o Cadastro de Aluno?", "Aviso ", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2) == DialogResult.No)
{
e.Cancel = true;
}
}
}
}Carregando comentários...