maxguimel Posted February 15, 2017 at 08:54 PM Report Share #602528 Posted February 15, 2017 at 08:54 PM Boa noite. Tenho uma classe com o seguinte código: using System; using System.Linq; using System.Data; using System.Data.SqlClient; using System.Windows.Forms; namespace Wm.Model { class ConexaoCrm { #region Declarações public SqlConnection AbreBanco // public SqlConnection AbreBanco = new SqlConnection(); { get { return AbreBanco; } set { AbreBanco = value; } } public static SqlConnection StrUsuario { get { return StrUsuario; } set { StrUsuario = value; } } public bool BancoConectado = false; #endregion Declarações public void OpenBancoCrm() { try { AbreBanco.ConnectionString = "Data Source=.;Initial Catalog=Wm_Envio;User ID=wm;Password=QaZ171281;Language=Portuguese"; AbreBanco.Open(); BancoConectado = true; } catch { BancoConectado = false; MessageBox.Show("Não foi Possível Conectar ao Usuário Master Wm! Por Favor Verifique sua Conexão!", "..:: Erro: Conexão de Dados ::..", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } } public void CloseBancoCrm() { AbreBanco.Close(); } } } E no formulário de login tenho o seguinte: ConexaoCrm fechar = new ConexaoCrm(); fechar.CloseBancoCrm(); ConexaoCrm abrir = new ConexaoCrm(); abrir.OpenBancoCrm(); ConexaoCrm Conn = new ConexaoCrm(); Conn.AbreBanco(); //cria um objeto command e altera registro no banco string sql = "SELECT CodLogin, Login, Senha FROM Login WHERE (((Login.[Login])='" + txtusuario.Text + "'))"; OleLogin = new SqlCommand(sql, Conn); //define um data adapter AdapterLogin = new SqlDataAdapter(); AdapterLogin.SelectCommand = OleLogin; TbLogin = new DataTable(); AdapterLogin.Fill(TbLogin); fechar.CloseBancoCrm(); Preciso pegar este AbreBanco que está lá na classe, como fazer? Obrigado! Link to comment Share on other sites More sharing options...
M6 Posted February 16, 2017 at 09:41 AM Report Share #602546 Posted February 16, 2017 at 09:41 AM Quere-me parecer que quem escreveu esse código queria encapsular o acesso à base de dados, pelo que, seguindo essa filosofia, a classe ConexaoCrm teria um método que executasse o select à tabela de login. Para obteres o AbreBanco basta fazeres Conn.AbreBanco, uma vez que é uma propriedade pública. 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar." Link to comment Share on other sites More sharing options...
maxguimel Posted February 17, 2017 at 10:03 PM Author Report Share #602599 Posted February 17, 2017 at 10:03 PM Boa noite M6, isso já foi feito, e está pegando os dados, mas lá no OleLogin = new SqlCommand(sql, Conn); não dá liga, fica sublinhado por dizer que está com erro. Link to comment Share on other sites More sharing options...
Solution M6 Posted February 20, 2017 at 09:24 AM Solution Report Share #602630 Posted February 20, 2017 at 09:24 AM Ou não estou a perceber o teu problema ou não me percebeste bem. A linha tem de ficar OleLogin = new SqlCommand(sql, Conn.AbreBanco) Uma vez que Conn.AbreBanco é a propriedade pública que tem a ligação à base de dados. 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar." Link to comment Share on other sites More sharing options...
maxguimel Posted February 21, 2017 at 09:09 PM Author Report Share #602694 Posted February 21, 2017 at 09:09 PM Opa, agora entendi o quis dizer, deu certinho, obrigado! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now