Jump to content

Pegar String dentro de uma classe


maxguimel
Go to solution Solved by M6,

Recommended Posts

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

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

  • Solution

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.