Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Heitor Sousa

C# com Mysql - Chamando class

Recommended Posts

Boa Noite, estou começando a aprender programação c# e quero utilizar o mysql como conexão.

 

Criei a classe e adicionei a referencia e acredito que está certo, porém quando crio o formulário e abro o botão para inserir o código não sei como devo fazer para capturar o valor do input e chamar o Insert() em um formulário para ele executar a query.

 

Obrigado

Atenciosamente

 

cód da class:

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using MySql.Data.MySqlClient;
using System.Windows.Forms;

namespace CadastrodeDVD
{
    class clsDados
    {
        private MySqlConnection connection;
        private string server;
        private string database;
        private string uid;
        private string password;

        //Constructor
        public clsDados()
        {
            Initialize();
        }

        //Initialize values
        private void Initialize()
        {
            server = "localhost";
            database = "dvds";
            uid = "root";
            password = "123";
            string connectionString;
            connectionString = "SERVER=" + server + ";" + "DATABASE=" +
            database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";";

            connection = new MySqlConnection(connectionString);
        }

        //open connection to database
        private bool OpenConnection()
        {
            try
            {
                connection.Open();
                return true;
            }
            catch (MySqlException ex)
            {
               
                switch (ex.Number)
                {
                    case 0:
                        MessageBox.Show("Não foi possível se conectar no banco de dados.  Contate o administrador");
                        break;

                    case 1045:
                        MessageBox.Show("Usuário e/ou senha inválido, por favor tente novamente");
                        break;
                }
                return false;
            }
        }

        //Close connection
        private bool CloseConnection()
        {
            try
            {
                connection.Close();
                return true;
            }
            catch (MySqlException ex)
            {
                MessageBox.Show(ex.Message);
                return false;
            }
        }

        //Insert statement
       
        public void Insert()
        {
            string query = "INSERT INTO genero (descricao) VALUES('?descricao')";

            //open connection
            if (this.OpenConnection() == true)
            {
                //create command and assign the query and connection from the constructor
                MySqlCommand cmd = new MySqlCommand(query, connection);

                //Execute command
                cmd.ExecuteNonQuery();

                //close connection
                this.CloseConnection();
            }
        }

     
        

       
    }    

    }

 

cód do botão:

 

 private void button1_Click(object sender, EventArgs e)
        {

            clsDados conectar = new clsDados();
                       


        }

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, seu botão não faz nada...

 

Para você conectar você precisa instanciar a classe e chamar os métodos:

 

 


 

 private void button1_Click(object sender, EventArgs e) { 

clsDados conectar = new clsDados(); 

conectar.OpenConnection();
conectar.Insert();
conectar.CloseConnection();

}

Assim ele deverá funcionar.

 

Acho legal se você colocar no método insert um parâmetro que permita que você mude a query, para não ficar sempre na mesma:

 

 


 

public void Insert(String SQL) { 

string query = SQL; 

//open connection 
if (this.OpenConnection() == true) { 

//create command and assign the query and connection from the constructor 
MySqlCommand cmd = new MySqlCommand(query, connection); 

//Execute command 
cmd.ExecuteNonQuery();
 
//close connection 
this.CloseConnection();

 } 

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

legal, muito obrigado.

Gostei dessa ideia que você disse, na verdade queria fazer desse jeito, então se eu criar o método desse jeito q vc disse como eu chamo a query? assim? :

 

 private void button1_Click(object sender, EventArgs e) { 

clsDados conectar = new clsDados(); 

conectar.OpenConnection();
conectar.Insert("INSERT INTO genero (descricao) VALUES('?descricao')");
conectar.CloseConnection();

}

 

daí na classe na opção string query = SQL; eu nem coloco a query só deixo assim mesmo né?

 

Obrigado

Atenciosamente

Heitor

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara consegui, você pode confirmar se está certo?

a class

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using MySql.Data.MySqlClient;
using System.Windows.Forms;

namespace CadastrodeDVD
{
    class clsDados
    {
        private MySqlConnection connection;
        private string server;
        private string database;
        private string uid;
        private string password;

        //Constructor
        public clsDados()
        {
            Initialize();
        }

        //Initialize values
        public void Initialize()
        {
            server = "localhost";
            database = "dvds";
            uid = "root";
            password = "jahehbom086689";
            string connectionString;
            connectionString = "SERVER=" + server + ";" + "DATABASE=" +
            database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";";

            connection = new MySqlConnection(connectionString);
        }

        //open connection to database
        public bool OpenConnection()
        {
            try
            {
                connection.Open();
                return true;
            }
            catch (MySqlException ex)
            {
               
                switch (ex.Number)
                {
                    case 0:
                        MessageBox.Show("Não foi possível se conectar no banco de dados.  Contate o administrador");
                        break;

                    case 1045:
                        MessageBox.Show("Usuário e/ou senha inválido, por favor tente novamente");
                        break;
                }
                return false;
            }
        }

        //Close connection
        public bool CloseConnection()
        {
            try
            {
                connection.Close();
                return true;
            }
            catch (MySqlException ex)
            {
                MessageBox.Show(ex.Message);
                return false;
            }
        }

        //Insert statement

        public void Insert(String SQL)
        {

            string query = SQL;

            //open connection 
            if (this.OpenConnection() == true)
            {

                //create command and assign the query and connection from the constructor 
                MySqlCommand cmd = new MySqlCommand(query, connection);

                //Execute command 
                cmd.ExecuteNonQuery();

                //close connection 
                this.CloseConnection();

            }

        }

 

o botão:

private void button1_Click(object sender, EventArgs e)
        {
            
            clsDados conectar = new clsDados();
            
           conectar.Insert("INSERT INTO genero (descricao) VALUES('"+txtInserir.Text+"')");
            conectar.CloseConnection();

                       


        }

 

no botão eu tirei conectar.OpenConnection(); pq dava erro dizendo q já estava aberto, isso pq no método insert() já tinha o OpenConnection será?

 

mesmo assim obrigado

consegui

 

ABRAÇO

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso mesmo, o botão é que estava abrindo a conexão, então você pode tirar do método insert, deixar só no botão que não vai dar mais erros.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.