|
<< Click to Display Table of Contents >> Fazer edições refletir na base |
![]() ![]()
|
Form + DataGridView + Botao1 (gravar) + Botao2 (excluir)
Neste exemplo use mySQL
Fonte
using System;
using System.Data;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
using System.Data.SqlClient;
namespace WindowsFormsApplication5
{
public partial class Form1 : Form
{
// monta conexão, comando e adapter
MySqlConnection conn;
MySqlCommand comm;
MySqlDataAdapter dataadapter;
MySqlCommandBuilder sqlCmdBuilder;
DataTable dTable;
BindingSource bSource;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// monta conexão, comando e adapter
conn = new MySqlConnection("Server=localhost;Database=base_um;Uid=root;Pwd=123456;");
comm = new MySqlCommand("SELECT * FROM tb_pessoas", conn);
dataadapter = new MySqlDataAdapter(comm);
// dataTable é quem vai receber os dados do adapter
dTable = new DataTable();
// abre a conexão
conn.Open();
// este carinha é quem monta os códigos SQL do MySQL para enviar para base
sqlCmdBuilder = new MySqlCommandBuilder(dataadapter);
// transfere os pensamentos da base para o DataTable
dataadapter.Fill(dTable);
// Este cara é quem vai "monitorar" as alterações para futuramente informar o sqlCmdBuilder
bSource = new BindingSource();
// indica quem que o BindingSource vai monitorar (o DataTable)
bSource.DataSource = dTable;
// a grid vai mostrar o que tem no Binding
dataGridView1.DataSource = bSource;
}
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
// fecha conexão
conn.Close();
}
private void button1_Click(object sender, EventArgs e)
{
try
{
// grava qualquer edição pendente para o DataTable;
dataGridView1.EndEdit();
// monta o comando de update/delete/insert
sqlCmdBuilder.GetUpdateCommand();
// manda alterações para base
dataadapter.Update(dTable);
// avisa do sucesso
MessageBox.Show("Sucesso em atualizar");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void button2_Click(object sender, EventArgs e)
{
if (dataGridView1.SelectedRows.Count == 0)
{
MessageBox.Show("Nada selecionado para exclusão");
return;
}
DataGridViewRow row = dataGridView1.SelectedRows[0];
dataGridView1.Rows.RemoveAt(row.Index);
}
}
}
Tela:
