Ir ao conteúdo
  • Cadastre-se

Ajuda - ligar funções entre duas classes distintas


drakylucas

Posts recomendados

Bom dia pessoal, estou com uma duvida,

criei uma classe chamada DBAcess, e dentro dessa classe fiz os métodos para inserir e receber dados do meu banco mysql, como segue abaixo:
 

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Data;using MySql.Data.MySqlClient;using System.Windows.Forms;using System.Diagnostics;using System.IO;namespace GestaoDeTorneios.DBAcess{    public class DBConnect    {        private MySqlConnection connection;        private string server;        private string database;        private string uid;        private string password;        //Constructor        public DBConnect()        {            Initialize();        }        //Initialize values        public void Initialize()        {            server = "localhost";            database = "gerenciadortorneios";            uid = "root";            password = "1234";            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)            {                //When handling errors, you can your application's response based                 //on the error number.                //The two most common error numbers when connecting are as follows:                //0: Cannot connect to server.                //1045: Invalid user name and/or password.                switch (ex.Number)                {                    case 0:                        MessageBox.Show("Cannot connect to server.  Contact administrator");                        break;                    case 1045:                        MessageBox.Show("Invalid username/password, please try again");                        break;                }                return false;            }        }        //Close connection        public bool CloseConnection()        {            try            {                connection.Close();                return true;            }            catch (MySqlException ex)            {                MessageBox.Show(ex.Message);                return false;            }        }        public void ExecuteNonQuery(String query)        {            //Open connection            if (this.OpenConnection() == true)            {                //create mysql command                MySqlCommand cmd = new MySqlCommand();                //Assign the query using CommandText                cmd.CommandText = query;                //Assign the connection using Connection                cmd.Connection = connection;                //Execute query                cmd.ExecuteNonQuery();                //close connection                this.CloseConnection();            }        }        public DataTable ExecuteQuery(string query)        {            if (this.OpenConnection() == true)            {                DataTable dt = new DataTable();                try                {                    MySqlCommand cmd = new MySqlCommand(query, connection);                    MySqlDataAdapter da;                    da = new MySqlDataAdapter(cmd);                    //                                        da.Fill(dt);                    this.CloseConnection();                    return dt;                }                catch (MySqlException ex)                {                    throw new ApplicationException(ex.ToString());                }                finally                {                    this.CloseConnection();                }            }            else            {                return new DataTable();            }        }    }}

depois disso, criei outra classe chamada DBAcademias, e estou tentando utilizar a função ExecuteQuery da classe DBAcess dentro da classe DBAcademias mas estou tendo problemas.
1º ele nao acha a função ExecuteQuery quando digito ela,

2º se eu mudo pra "public static DataTable", ele acha a função no DBAcademias porém buga no DBAcess (os this nao funcionam mais e nao sei o que fazer para arruma-los)

 

DBAcademias:
 

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Data;using MySql.Data.MySqlClient;using System.Windows.Forms;using System.Diagnostics;using System.IO;using GestaoDeTorneios.DBAcess;namespace GestaoDeTorneios.DBAcess{    public class DBAcademias    {        public DataTable selecionarAcademias()        {            return DBConnect.ExecuteQuery("select * from academias;");        }    }}

alguem pode me dar umas instruções? obrigado

Link para o comentário
Compartilhar em outros sites

consegui de outra maneira, apenas instanciei tipo 

            DBConnect db = new DBConnect();
            return db.ExecuteQuery("select * from academias;"); 

e funcionou, mas agora estou com outra duvida, tipo eu estou tentando programar em camadas, por isso ta me complicando, é pra aprender apenas.. pode me ajudar nessa duvida?

http://forum.clubedohardware.com.br/forums/topic/1094105-duvida-fun%C3%A7%C3%B5es-dentro-de-classes-que-alteram-dados-de-um-form/

obrigado.
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...