Criar classe e Herda conexão com o banco.
01/03/2010
0
Olá galera sou iniciante em c# estou criando uma classe e tem updates e inserts e selects
o que acontece e não quero criar em toda a classe uma conexao com o banco de dados.
Então como eu poderia herda a conexao de uma classe.
Fiz desse forma mais deu erro...
A classe ClAcessoBd e meu acesso ao banco.
Então quero herda.
Já coloque a minha classe(ClAcessoBd) como publica.
E Esta dando erro.
FrmMenu.ClAcessoBd.con is inaccessible due to its protection level.
public class ClInclusaoCliente: ClAcessoBd
{
public enum Inclusao
{
Insert,
update
}
public void InclusaoUser(string NmUsuario, string NmGuerra, string NrSenha)
{
SqlCommand SqlCom = new SqlCommand("INSERT INTO USUARIO(NmUsuario,NmGuerra,NrSenha) VALUES (@NmUsuario,@NmGuerra,@NrSenha)",con);
SqlCom.Parameters.Add("@NmUsuario",SqlDbType.NChar,15,"NmUsuario").Value = NmUsuario.ToString();
SqlCom.Parameters.Add("@NmGuerra",SqlDbType.VarChar,10,"NmGuerra").Value = NmGuerra.ToString();
SqlCom.Parameters.Add("@NrSenha", SqlDbType.Int, 4, "NrSenha").Value = NrSenha.ToString();
con.Open();
try
{
SqlCom.ExecuteNonQuery();
}
finally
{
con.Close();
}
}
Se puderem me ajuda eu agradeço.... valeu
Obg pela atenção
o que acontece e não quero criar em toda a classe uma conexao com o banco de dados.
Então como eu poderia herda a conexao de uma classe.
Fiz desse forma mais deu erro...
A classe ClAcessoBd e meu acesso ao banco.
Então quero herda.
Já coloque a minha classe(ClAcessoBd) como publica.
E Esta dando erro.
FrmMenu.ClAcessoBd.con is inaccessible due to its protection level.
public class ClInclusaoCliente: ClAcessoBd
{
public enum Inclusao
{
Insert,
update
}
public void InclusaoUser(string NmUsuario, string NmGuerra, string NrSenha)
{
SqlCommand SqlCom = new SqlCommand("INSERT INTO USUARIO(NmUsuario,NmGuerra,NrSenha) VALUES (@NmUsuario,@NmGuerra,@NrSenha)",con);
SqlCom.Parameters.Add("@NmUsuario",SqlDbType.NChar,15,"NmUsuario").Value = NmUsuario.ToString();
SqlCom.Parameters.Add("@NmGuerra",SqlDbType.VarChar,10,"NmGuerra").Value = NmGuerra.ToString();
SqlCom.Parameters.Add("@NrSenha", SqlDbType.Int, 4, "NrSenha").Value = NrSenha.ToString();
con.Open();
try
{
SqlCom.ExecuteNonQuery();
}
finally
{
con.Close();
}
}
Se puderem me ajuda eu agradeço.... valeu
Obg pela atenção
Danielson Sousa
Curtir tópico
+ 0
Responder
Posts
02/03/2010
Netasper
Danielson
Use as bibliotecas da Microsoft para isto, use a Aplication Block DAAB, do Enterprise Library 4.1. Ela ja faz tudo isto pra vc de graça...
[]s
Responder
02/03/2010
Alexandre Machado
Danielson,
O acesso a dados não é tão simples assim. Se sua aplicação for grande, uma estrategia de acesso a dados ruim pode arruinar a aplicação.
Bom, não vou me estender muito, porque o assunto enche um livro.
Algumas dicas que posso te passar e que estão espalhadas pela internet são:
- Abra a conexão com o banco o mais tarde possivel e feche o mais cedo.
- Evite criar strings de conexão diferentes, isso cria pools de conexão diferentes(consumindo recursos).
- se forma executar varias operações no banco (tipo um loop), abra a conexao, execute o loop e feche a conexao. Se ficar abrindo e fechando isso vai levar tempo e consumir recursos.
- sempre fecha as conexoes, se voce deixa-las aberta, elas farão com que o pool leve mais tempo para reabrir uma outra.
Existem varias regras, e como falei o assunto é extenso.
Mas respondendo a sua duvida, voce pode criar um metodo para abrir a conexao, um para fechar e outro para execurar seus comando(existem varias formas). No metodo que voce for executar os comando voce chama o metodo de abrir, executa o comando e em seguida fecha a conexao.
Se voce estiver usando a mesma string (isso quer dizer identica caracter por caracter. Qualquer espaço difetente e o .net cria um outro pool) o pool de conexão irá fazer o trabalho.
Espero ter ajudado
Alexandre
Responder
Clique aqui para fazer login e interagir na Comunidade :)