3 CAMADAS - SELECT
Bom Dia a todos.
Pessoal, estou com alguns problemas para fazer o select utilizando 3 camadas com o C#
tenho as outras operações como insert, update e delete e funcionam perfeitamente.
segue um exemplo
no Meu botão incluir do form tenho o seguinte codigo
na minha Classe da regra de negocios, tenho o seguinte codigo
e no meu projeto de conexao tenho o seguinte codigo
Isso tudo tirei base no Incluir, porem preciso fazer o select da mesma forma
form
regra de negocio
conexão
ele da tudo certo até voltar para a regra de negocio, com o seguinte erro na linha
if (objConexao.DtReader.Read())
Referência de objeto não definida para uma instância de um objeto.
espero ter Sido especifico o suficiente.
ps: me falaram sobre Herança, porem não consegui do mesmo jeito
Obrigado
Pessoal, estou com alguns problemas para fazer o select utilizando 3 camadas com o C#
tenho as outras operações como insert, update e delete e funcionam perfeitamente.
segue um exemplo
no Meu botão incluir do form tenho o seguinte codigo
private void btnIncluir_Click(object sender, EventArgs e)
{
objCentroCusto.VerificaBranco(txtCodigo.Text, txtDescricao.Text);
if (objCentroCusto.Verdadeiro.Equals(true))
{
objQuery = [Ô]INSERT INTO CENTROCUSTO(CEN_CODIGO,CEN_DESCRICAO)VALUES([ô][Ô] + txtCodigo.Text + [Ô][ô],[ô][Ô] + txtDescricao.Text + [Ô][ô])[Ô];
objFuncoes.Movimenta(objQuery);
MessageBox.Show([Ô]CENTRO DE CUSTO CADASTRADO COM SUCESSO[Ô]);
}
}
na minha Classe da regra de negocios, tenho o seguinte codigo
public class FuncoesGeral
{
Conexao.Conexao objConexao = new Conexao.Conexao();
public void Movimenta(String strMovimenta)
{
try
{
objConexao.Conectar();
objConexao.MovimentaDados(strMovimenta);
objConexao.Desconectar();
}
catch
{
MessageBox.Show([Ô]ERRO NA MOVIMENTAÇÃO DO BANCO DE DADOS[Ô]);
}
}
}
e no meu projeto de conexao tenho o seguinte codigo
public class Conexao
{
public MySqlConnection Conecta;
public MySqlDataReader DtReader;
public MySqlCommand Comando;
public void MovimentaDados(String Movimenta)
{
MySqlCommand Comando = new MySqlCommand(Movimenta, Conecta);
Comando.BeginExecuteNonQuery();
}
Isso tudo tirei base no Incluir, porem preciso fazer o select da mesma forma
form
private void txtCodigo_TextChanged(object sender, EventArgs e)
{
objQuery = [Ô]SELECT CEN_DESCRICAO FROM CENTROCUSTO WHERE CEN_CODIGO = [ô][Ô] + txtCodigo.Text + [Ô][ô][Ô];
objCentroCusto.Select(objQuery);
}
regra de negocio
public void Select(String Query)
{
objConexao.Conectar();
objConexao.SelectDados(Query);
if (objConexao.DtReader.Read())
{
varDescricao = objConexao.DtReader[[Ô]CEN_DESCRICAO[Ô]].ToString();
}
}
conexão
public void SelectDados(String Query)
{
MySqlCommand Comando = new MySqlCommand(Query, Conecta);
Comando.BeginExecuteNonQuery();
MySqlDataReader DtReader = Comando.ExecuteReader();
if (DtReader.Read())
{
return;
}
}
ele da tudo certo até voltar para a regra de negocio, com o seguinte erro na linha
if (objConexao.DtReader.Read())
Referência de objeto não definida para uma instância de um objeto.
espero ter Sido especifico o suficiente.
ps: me falaram sobre Herança, porem não consegui do mesmo jeito
Obrigado
Acretido que o correto é assim
Regra de Negócio
public void Select(String Query)
{
objConexao.Conectar();
MySqlDataReader dataReader;
dataReader = objConexao.SelectDados(Query)
if (dataReader .read())
{
varDescricao = dataReader [[Ô]CEN_DESCRICAO[Ô]].ToString();
}
}
conexão
public MySqlDataReader SelectDados(String Query)
{
MySqlCommand Comando = new MySqlCommand(Query, Conecta);
Comando.BeginExecuteNonQuery();
MySqlDataReader DtReader = Comando.ExecuteReader();
if (DtReader.Read())
{
return DtReader;;
}
}
Regra de Negócio
public void Select(String Query)
{
objConexao.Conectar();
MySqlDataReader dataReader;
dataReader = objConexao.SelectDados(Query)
if (dataReader .read())
{
varDescricao = dataReader [[Ô]CEN_DESCRICAO[Ô]].ToString();
}
}
conexão
public MySqlDataReader SelectDados(String Query)
{
MySqlCommand Comando = new MySqlCommand(Query, Conecta);
Comando.BeginExecuteNonQuery();
MySqlDataReader DtReader = Comando.ExecuteReader();
if (DtReader.Read())
{
return DtReader;;
}
}
Então cara, eu fiz algo parecido, peguei no site do Marcoratti, porem ele da um exemplo com Grid e tenho TextBox no meu form
regra de negocio
no Form
agora nao sei como que pego os dados desse DataAdapter para os meus TextBox
Obrigado
public DataSet RetornaDataSet(string Sql)
{
MySqlCommand conn = new MySqlCommand(Sql, Conecta);
MySqlDataAdapter adp = new MySqlDataAdapter(Sql, Conecta);
DataSet ds = new DataSet();
adp.Fill(ds);
return ds;
}
regra de negocio
public DataSet obtemClientes()
{
objConexao.Conectar();
return objConexao.RetornaDataSet([Ô]select * from centrocusto[Ô]);
objConexao.Desconectar();
}
no Form
private void txtCodigo_TextChanged(object sender, EventArgs e)
{
objCentroCusto.obtemClientes();
}
agora nao sei como que pego os dados desse DataAdapter para os meus TextBox
Obrigado
Alguem?
O que você vai fazer com o resultado da consulta?
Exibir em algum controle?
Qual?
Exibir em algum controle?
Qual?
Isso, irei exibir em um TextBox
Obrigado
Obrigado
Tente assim:
private void txtCodigo_TextChanged(object sender, EventArgs e)
{
TextBox1.Text = objCentroCusto.obtemClientes().Tables(0).Rows(0)([Ô]NomeDoCampo[Ô]).ToString();
}
Comecei a desenvolver um sistema usando 3 camadas. E empaquei exatamente na questão dos SELECT.
No meu caso eu criei uma classe Entidade para cada tabela existente no Banco de Dados.
Ficou um [ô]troço[ô] meio esquisito.
No meu caso eu criei uma classe Entidade para cada tabela existente no Banco de Dados.
Ficou um [ô]troço[ô] meio esquisito.
Então, eu passei do Select agora, com uma alternativa parecida com a do Tecla, agora estou com problemas no preenchimento de uma grid usando 3 camadas
Tópico encerrado , respostas não são mais permitidas