Ejemplo n.º 1
0
    public WebSite.Data.Utils.stcCep ConsultaCep(string cep)
    {
        Utils utls = new Utils();
        WebSite.Data.Utils.stcCep stcRetorno = new Utils.stcCep();
        SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["CEPConnectionString"].ToString());
        SqlCommand cmd = new SqlCommand();
        cmd.Connection = con;

        cmd.CommandText = @"SELECT TOP 1
                                   LOGRADOURO.cepLogradouro,
                                   ESTADO.siglaEstado,
                                   CIDADE.nomeCidade,
                                   BAIRRO.nomeBairro,
                                   LOGRADOURO.nomeLogradouro
                              FROM LOGRADOURO
                             INNER JOIN BAIRRO
                                ON LOGRADOURO.idBairro = BAIRRO.idBairro
                              LEFT OUTER JOIN CIDADE
                                ON BAIRRO.idCidade = CIDADE.idCidade
                             INNER JOIN ESTADO
                                ON CIDADE.idEstado = ESTADO.idEstado
                             WHERE LOGRADOURO.cepLogradouro = @CepLogradouro;";
        try
        {
            cmd.Parameters.AddWithValue("@CepLogradouro", Convert.ToString(cep));

            cmd.Connection.Open();

            DataSet dts = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            da.Fill(dts);

            if (dts.Tables[0].Rows.Count > 0)
            {
                DataRow dr = dts.Tables[0].Rows[0];
                stcRetorno.CepLogradouro = utls.ConvertePara<String>(dr["cepLogradouro"], cep); ;
                stcRetorno.SiglaEstado   = utls.ConvertePara<String>(dr["siglaEstado"], "");
                stcRetorno.NomeCidade    = utls.ConvertePara<String>(dr["nomeCidade"], "");
                if (cep.Substring(5, 3) == "000")
                {
                    stcRetorno.NomeBairro = "";
                    stcRetorno.NomeLogradouro = "";
                }
                else
                {
                    stcRetorno.NomeBairro = utls.ConvertePara<String>(dts.Tables[0].Rows[0]["nomeBairro"], "");
                    stcRetorno.NomeLogradouro = utls.ConvertePara<String>(dts.Tables[0].Rows[0]["nomeLogradouro"], "");
                }
            }

            cmd.Connection.Close();

            return stcRetorno;
        }
        catch (Exception ex)
        {
            throw (new Exception("mensagem do contexto", ex));
        }
    }