Jump to content
Sign in to follow this  
filipe225

C# com mysql "update" e "delete"

Recommended Posts

filipe225

Boas.

Estou neste momento a fazer uma aplicação desktop para uma Associação, em C# com ligação a uma base de dados mysql.

Porém agora precisava de fazer o editar e o remover, mas não sei como é que ao seleccionar um Sócio na datagridview e depois fazer editar , por exemplo, ele passa os dados do socio seleccionado para uma nova janela, para aí ser editado.

eu tenho a base de dados criada, o botão criado, a nova janela pronta com os mesmos campos da tabela, só não sei como digo para passar a informação do sócio que seleccionei.

Para o "delete" penso que seja a mesma coisa visto que eu quero apagar a pessoa que selecciona na datagrid.

Agradeço toda a ajuda que me possam dar.

Share this post


Link to post
Share on other sites
renafi

Eu acho que a melhor coisa é enviar o ID do sócio seleccionado para a form dos detalhes através do construtor... Sabes trabalhar com construtores?

Ao chamares a Form dos detalhes, em vez de fazeres assim:

Detalhes d = new Detalhes();
d.ShowDialog();

Fazes assim:

Detalhes d = new Detalhes(id id_socio);   -- Este id_socio é o ID seleccionado na DatagridView
d.ShowDialog();

E depois tens de preparar a Classe da Form Detalhes para receber esta variável e fazer a query baseada no ID.

Se precisares de mais detalhes, diz.


Oracle Certified Professional - AdministraçãoOracle Certified Professional - Pl/sqlMCPD - Microsoft Certified Professional DeveloperMCTS - Microsoft Certified Technology Specialist

Share this post


Link to post
Share on other sites
filipe225

O meu problema é que eu quero passar a informação do sócio que seleccionei para uma nova janela onde me vai aparecer os campos preenchidos com os dados do sócio , e aí posso alterar e guardar as novas informações. Neste momento só estou a usar uma base de dados teste que tem apenas o: idaluno, nome , idade.

Eu tenho o botão ver socios que vai buscar os campos e a informação dos mesmo a base de dados, por isso não adicionei nenhuma coluna na datagrid . Será que tenho que adicionar as colunas para poder ir buscar o "idaluno"?

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;
using MySql.Data.MySqlClient;


namespace Pap
{
    public partial class Form1 : Form
    {
        private MySqlConnection mConn;
        private MySqlDataAdapter mAdapter;
        private DataSet mDataSet;

        public Form1()
        {
            InitializeComponent();
        }

        private void mostraResultados()
        {
            mDataSet = new DataSet();
            mConn = new MySqlConnection("Persist Security Info=False; server=localhost;database=test;uid=root");
            mConn.Open();

            //cria um adapter utilizando a instrução SQL para aceder à tabela
            mAdapter = new MySqlDataAdapter("SELECT * FROM aluno ORDER BY idaluno", mConn);

            //preenche o dataset através do adapter
            mAdapter.Fill(mDataSet, "aluno");

            //atribui o resultado à propriedade DataSource da dataGridView
            dgv.DataSource = mDataSet;
            dgv.DataMember = "aluno";
        }

        private void visualizar_Click(object sender, EventArgs e)
        {
            mostraResultados();
        }

        private void adicionar_Click(object sender, EventArgs e)
        {
            // Início da Conexão com indicação de qual o servidor, nome de base de dados e utilizar

            mConn = new MySqlConnection("Persist Security Info=False; server=localhost;database=test;uid=root");

            // Abre a conexão
            mConn.Open();

            if (textBoxNome.Text == "" || textBoxIdade.Text == "")
                MessageBox.Show("Tem de preencher todos os Campos");

            else
            {

                //Query SQL
                MySqlCommand command = new MySqlCommand("INSERT INTO aluno (nome,idade)" +
                "VALUES('" + textBoxNome.Text + "','" + textBoxIdade.Text + "')", mConn);

                //Executa a Query SQL
                command.ExecuteNonQuery();

                // Fecha a conexão
                mConn.Close();

                //Mensagem de Sucesso
                MessageBox.Show("Gravado com Sucesso!", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information);

                // Método criado para que quando o registo é gravado, automaticamente a dataGridView efectua um "Refresh"
                mostraResultados();
            }
        }


        
        private void remover_Click(object sender, EventArgs e)
        {

           
        }

        private void limpar_Click(object sender, EventArgs e)
        {
            this.textBoxNome.Text = "";
            this.textBoxIdade.Text = "";
            this.textBoxNome.Focus();
        }

        private void ver_tudo_Click(object sender, EventArgs e)
        {
            Ver_Socios ver = new Ver_Socios();
            ver.ShowDialog();

        }

        private void editar_Click(object sender, EventArgs e)
        {
            Editar edit = new Editar(id, idaluno);
            edit.ShowDialog();
        }


    }
}

depois no código da nova janela editar tenho o seguinte:


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;
using MySql.Data.MySqlClient;

namespace Pap
{
    public partial class Editar : Form
    {
        public Editar()
        {
            InitializeComponent();
            
        }
        
        private void btnGuardar_Click()
        {

        }

        private void btnCancelar_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}

Aqui não tenho nada pois não sei mesmo como fazer passar os dados.

Share this post


Link to post
Share on other sites
renafi

Tens de por o id na grid... mas podes por a coluna invisível, para o user não ver... mas para tu conseguires ir buscar o valor da coluna para apresentares o detalhe.


Oracle Certified Professional - AdministraçãoOracle Certified Professional - Pl/sqlMCPD - Microsoft Certified Professional DeveloperMCTS - Microsoft Certified Technology Specialist

Share this post


Link to post
Share on other sites
filipe225

Obrigado. Podes só ajudar-me com o código dor form "Editar".

É que não estou a ver como vou buscar a informação.

E no Form1 na função editar_click() está a dizer que não é a melhor método de overload.

Share this post


Link to post
Share on other sites
filipe225

Se eu adicionar a coluna "idaluno" não vou ter lá nada, aparece-me duas coluna "idaluno", mas a que adicionei( que é essa pela qual quero passar a informação) não tem id's e não sei com adicionar nesta.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.