drakylucas
Membro Júnior-
Posts
18 -
Cadastrado em
-
Última visita
Reputação
0-
Ajuda - ligar funções entre duas classes distintas
drakylucas respondeu ao tópico de drakylucas em C/C#/C++
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. -
Duvida - funções dentro de classes que alteram dados de um form.
drakylucas postou um tópico em C/C#/C++
então galera, seguinte, estou tentando fazer mais ou menos isso: estou programando em camadas (view/entity/business/dao), na camada DAO eu fiz uma função de pegar dados e colocar em uma datatable, na camada business eu quero uma função que preencha um datagridview com essa tabela encontrada. eu fiz assim: public void atualizarAcademias() { dgvAcademias.Rows.Clear(); DBAcess.DBAcademias classAcademias = new DBAcess.DBAcademias(); DataTable dt = classAcademias.selecionarAcademias(); for (int i = 0; i < dt.Rows.Count; i++) { dgvAcademias.Rows.Add(); for (int j = 0; j < 3; j++) { dgvAcademias.Rows[i].Cells[j].Value = dt.Select()[i][j]; } } dgvAcademias.ClearSelection(); } isso, quando está dentro do proprio formulario na camada View, funciona bem, porém quando está na camada business, ele nao encontra o meu datagrid (dgvAcademias), e se eu criar uma instancia com o meu form, ele nao atualizará aquele form e sim o novo criado da instancia. minha duvida: como altero dados de um formulario já previamente aberto com uma função em uma classe que não se encontra no formulario? obrigado. -
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
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