none
sqlherpler.cs connectionstring RRS feed

Todas as Respostas

  • Hugo,

    Esta classe helper para SqlConnection, que eu me lembre a maioria dos métodos possui um parametros que é justamente a connectionstring. Por exemplo:

    SqlHelper.ExecuteReader("MINHA CONNECTION STRING", CommandType.Text, "SELECT * FROM MinhaTabela")

    Como você tem acesso a este código da classe SqlHelper vocÊ pode modificar internamente e já embutir a chamada para as connectionstring diretamente nos métodos, ou criar outro método helper apenas para trazer a connectionstring para passarmos como parametros nos métodos:

    public class MinhaClasseHelper
    {
        public static string MinhaConnectionString()
        {
            return ConfigurationManager.ConnectionStrings["BaseDados"].ConnectionString;
        }
    }

    Agora é só usar deste métodos:

    SqlHelper.ExecuteReader(MinhaClasseHelper.MinhaConnectionString(), CommandType.Text, "SELECT * FROM MinhaTabela")



    Vitor Mendes | Seu feedback é muito importante para todos!
    Visite o meu site: http://www.vitormendes.com.br/

    segunda-feira, 28 de janeiro de 2013 12:09
  • sim a questao é que ele abre e fecha a conexao em cada comando e pergunta no comando a connection string

    por exemplo:

     public static int ExecuteNonQuery(string connectionString, CommandType commandType, string commandText)
            {
                // Pass through the call providing null for the set of SqlParameters
                return ExecuteNonQuery(connectionString, commandType, commandText, (SqlParameter[])null);
            }

    eu depois tenho um ficheiro com as business rules (bll) e chama atraves deste o sql helper por exemplo

    (neste caso seria sqlhelper)

    exemplo bll que le no oledbhelper o comando execute non query e assim tenho aqui os meus comandos e no oledb a especificacao o que o comando deve fazer
     public static bool CriarConta(string username, string password, string email, string psecreta, string rsecreta)
            {
    
                int idf = DevolveFuncaoUtilizador();
                string uje = UtilizadorjaExiste(username);
    
                if (uje == username)
                    return false;
    
                ArrayList _arraySqlParams = new ArrayList();
    
    
                _arraySqlParams.Add(new OleDbParameter("username", username));
                _arraySqlParams.Add(new OleDbParameter("password", password));
                _arraySqlParams.Add(new OleDbParameter("email", email));
                _arraySqlParams.Add(new OleDbParameter("psecreta", psecreta));
                _arraySqlParams.Add(new OleDbParameter("rsecreta", rsecreta));
                _arraySqlParams.Add(new OleDbParameter("idfuncao", idf));
    
    
                return (OleDbHelper.executeNonQuery("INSERT INTO Utilizador ([username], [password], [e-mail], psecreta, rsecreta, idfuncao) values(?,?,?,?,?,?)", (OleDbParameter[])_arraySqlParams.ToArray(typeof(OleDbParameter))) != 0);
            }

    oledbhelper command:

    	public static int executeNonQuery(string storedProc, OleDbParameter[] _params)
    		{
                int r = 0;
                OleDbCommand cmd=new OleDbCommand(storedProc,_OleDbConnection);
    			//cmd.CommandType=CommandType.StoredProcedure;
    			if(_params != null)
    			{
    				foreach(OleDbParameter _sqlPa in _params) cmd.Parameters.Add(_sqlPa);
    			}
    
    			try
    			{
    				Open();
    				cmd.Connection=_OleDbConnection;
    
    				r = cmd.ExecuteNonQuery();
    			}
    			catch(Exception ex)
    			{
    				System.Diagnostics.Trace.WriteLine(ex.Message, "SQLHelper.executeNonQuery");	
    			}
    			finally
    			{
    				cmd.Dispose();
    				Close();
    			}
                return r;
    		}

    o que sugere e para alterar todos os comandos de:


    segunda-feira, 28 de janeiro de 2013 13:29