USO DO DATASET

 Tópico anterior Próximo tópico Novo tópico

USO DO DATASET

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#477074 - 10/10/2017 00:58:30

MAGNAN
SUMARE
Cadast. em:Abril/2011


Última edição em 10/10/2017 01:04:36 por MAGNAN

Boa noite galera, estou tentando montar um esquema de buscar CEP pelo aplicativo usando xamarin, porem n reconhece o DataSet, tentei buscar na net para sei lá, estancia-lo, más não obtive sucesso!

Segue o código;

  try
                {

                    DataSet ds = new DataSet();
                    string xml = "http://cep.republicavirtual.com.br/web_cep.php?cep=" + cep.Text + "&formato=xml";

                    ds.ReadXml(xml);
                    string Endereco = ds.Tables(0).Rows(0)("logradouro").ToString;
                    string Bairro = ds.Tables(0).Rows(0)("bairro").ToString;
                    string Cidade = ds.Tables(0).Rows(0)("cidade").ToString;
                    string Uf = ds.Tables(0).Rows(0)("uf").ToString;
                    string tiporua = ds.Tables(0).Rows(0)("tipo_logradouro").ToString;



                    DisplayAlert("Endereço buscado", tiporua + " " + Endereco + ", Bairro " + Bairro + ", " + Cidade + "/" + Uf, "Ok" );
                  

                }
                catch (Exception ex)
                {
                    DisplayAlert("Erro", ex.Message, "Ok");
                }



__________________________________
- Everyone has a chance

#477075 - 10/10/2017 08:53:51

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Não use DataSet, use List<T> e como está trazendo um XML, serialização.

_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


#477082 - 10/10/2017 13:20:37

LAMPIAO
SAO CAETANO DO SUL
Cadast. em:Setembro/2004


Cara você ta fazendo do jeito mais difícil,

Do próprio site do República Digital, troque o formato=xml por formato=json, cole isso como json  
{"resultado":"1","resultado_txt":"sucesso - cep completo","uf":"RS","cidade":"Porto Alegre","bairro":"Passo D'Areia","tipo_logradouro":"Avenida","logradouro":"Assis Brasil"} para criar a classe, ou crie na mão mesmo e use o httpClient para fazer o request, apenas isso e nada mais, o resultado você joga onde quiser.

Fui.



#477084 - 10/10/2017 13:35:59

MAGNAN
SUMARE
Cadast. em:Abril/2011


Achei um exemplo no StackOverflow Ler Xml Xamarin  

E tentei dar uma resumida;

  void btn_click (Object sender, EventArgs e)
            {

                

                try
                {
                    
                    string xml = "http://cep.republicavirtual.com.br/web_cep.php?cep=" + cep.Text + "&formato=xml";
              
                    using (XmlReader xmR = XmlReader.Create(xml))
                    {
                        while (xmR.Read())
                        {
                            var cidade = Convert.ToString(xmR.GetAttribute("cidade"));

                            cid.Text = cidade;
                        }
                        
                    }
                    
                }
                catch (Exception ex)
                {
                    DisplayAlert("Erro", ex.Message, "Ok");
                }
            };


Porém não deu certo, onde estou errando?

__________________________________
- Everyone has a chance

#477085 - 10/10/2017 13:59:00

MAGNAN
SUMARE
Cadast. em:Abril/2011


(eu sei que é o mais dificil, porem é o jeito que achei mais facil kkkk)

Consegui importar DataSet porém

  DataSet ds = new DataSet();
                    string xml = "http://cep.republicavirtual.com.br/web_cep.php?cep=" + cep.Text + "&formato=xml";

                    ds.ReadXml(xml);
                    string Endereco = ds.Tables[0].Rows[0]["logradouro"].ToString();
                    string Bairro = ds.Tables[0].Rows[0]["bairro"].ToString();
                    string Cidade = ds.Tables[0].Rows[0]["cidade"].ToString();
                    string Uf = ds.Tables[0].Rows[0]["uf"].ToString();
                    string tiporua = ds.Tables[0].Rows[0]["tipo_logradouro"].ToString();



                    DisplayAlert("Endereço buscado", tiporua + " " + Endereco + ", Bairro " + Bairro + ", " + Cidade + "/" + Uf, "Ok");



Apareceu o seguinte erro em ds.ReadXml:

Citação:
      O tipo "XmlReader" está definido em um assembly que não é referenciado. Você deve adicionar uma referência ao assembly "System.Xml, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e"


e Também:

Citação:
      Referência ao tipo "MarshalByValueComponent" declara que ele é definido em "System", mas não pode ser encontrado    


__________________________________
- Everyone has a chance

#477086 - 10/10/2017 14:55:48

EDUFS
SAO PAULO
Cadast. em:Março/2004


eu  uso em vb.net

    Function BuscaCep(ByVal cep As String) As Hashtable
        Dim ds As DataSet
        Dim _resultado As String
        Dim ht As System.Collections.Hashtable
        Try
            ds = New DataSet()
            ds.ReadXml("http://cep.republicavirtual.com.br/web_cep.php?cep=" + cep.Replace("-", "").Trim() + "&formato=xml")
            If Not IsNothing(ds) Then
                If (ds.Tables(0).Rows.Count > 0) Then
                    _resultado = ds.Tables(0).Rows(0).Item("resultado").ToString()
                    ht = New Hashtable
                    Select Case _resultado
                        Case "1"
                            ht.Add("UF", ds.Tables(0).Rows(0).Item("uf").ToString().Trim())
                            ht.Add("cidade", ds.Tables(0).Rows(0).Item("cidade").ToString().Trim())
                            ht.Add("bairro", ds.Tables(0).Rows(0).Item("bairro").ToString().Trim())
                            ht.Add("tipologradouro", ds.Tables(0).Rows(0).Item("tipo_logradouro").ToString().Trim())
                            ht.Add("logradouro", ds.Tables(0).Rows(0).Item("logradouro").ToString().Trim())
                            ht.Add("tipo", 1)

                        Case "2"
                            ht.Add("UF", ds.Tables(0).Rows(0).Item("uf").ToString().Trim())
                            ht.Add("cidade", ds.Tables(0).Rows(0).Item("cidade").ToString().Trim())
                            ht.Add("tipo", 2)
                        Case Else
                            ht.Add("tipo", 0)
                    End Select
                End If
            End If
            Return ht
        Catch ex As Exception
            Throw New Exception("Falha ao Buscar o Cep" & vbCrLf & ex.ToString)
            Return Nothing
        End Try
    End Function





        Dim ht As System.Collections.Hashtable
        ht = New Hashtable
        ht = BuscaCep(ncep)




#477138 - 13/10/2017 18:34:50

MAGNAN
SUMARE
Cadast. em:Abril/2011


Desse geito não funciona

__________________________________
- Everyone has a chance

#477141 - 13/10/2017 19:29:43

MOREIRA
SAO LUIS - TURU
Cadast. em:Agosto/2004


Última edição em 13/10/2017 19:31:12 por MOREIRA

adiciona :

https://apps.correios.com.br/SigepMasterJPA/AtendeClienteService/AtendeCliente?wsdl

Em vb.net

Private Sub btn_Cep_Click(sender As Object, e As EventArgs) Handles btn_Cep.Click
        Using WS = New WS_Correios.AtendeClienteClient()
            Try
                Dim Resultado = WS.consultaCEP(mskcep.Text)
                Me.txt_endereco.Text = Resultado.[end]
                Me.txt_complmento.Text = Resultado.complemento
                Me.cdb_cidade.Text = Resultado.cidade
                Me.txt_bairro.Text = Resultado.bairro
                cdb_uf.Text = Resultado.uf
            Catch ex As Exception
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.[Error])
            End Try
        End Using
    End Sub  



Eu não nasci, fui Compilado

#477179 - 16/10/2017 14:32:39

MAGNAN
SUMARE
Cadast. em:Abril/2011


No xamarin cross plataform não tem Referencia Web

__________________________________
- Everyone has a chance

#477203 - 17/10/2017 18:52:31

OMAR2011
MONTES CLAROS
Cadast. em:Setembro/2011


Este foi convertido de um exemplo do site.
private void BuscarCEP()
        {
            if (this.mkdCEP.MaskCompleted)
            {
                this.CEP(this.mkdCEP.Text);
                this.txtNumeroRua.Focus();
            }
            else
            {
                MessageBox.Show("Informar CEP", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }

        }

        // '' <summary>
        // '' M�todo que retorna um endere�o com base no CEP (faz uma busca na internet)
        // '' </summary>
       private void CEP(string pCEP)
        {
            DataSet ds=new DataSet();
            string Resultado = String.Empty;
        
            string[] DD = new string[4] ;
            try
            {
                ds = new DataSet();
                ds.ReadXml(("http://cep.republicavirtual.com.br/web_cep.php?cep="
                                + (pCEP.Replace("-", "").Trim() + "&formato=xml")));
                if (!(ds == null))
                {
                    if ((ds.Tables[0].Rows.Count > 0))
                    {
                        Resultado = ds.Tables[0].Rows[0]["resultado"].ToString();
                        switch (Resultado)
                        {

                            case "1":
                               // 'dtTable.Rows[i]["NoUsuario"].ToString());
                                DD[0] = ds.Tables[0].Rows[0]["uf"].ToString().Trim();
                                DD[1] = ds.Tables[0].Rows[0]["cidade"].ToString().Trim();
                                DD[2] = ds.Tables[0].Rows[0]["bairro"].ToString().Trim();
                                DD[3] = ds.Tables[0].Rows[0]["logradouro"].ToString().Trim();
                                break;
                            case "2":
                                DD[0] = ds.Tables[0].Rows[0]["uf"].ToString().Trim();
                                DD[1] = ds.Tables[0].Rows[0]["cidade"].ToString().Trim();
                                DD[2] = String.Empty;
                                DD[3] = String.Empty;
                                break;
                            default:
                                DD[0] = String.Empty;
                                DD[1] = String.Empty;
                                DD[2] = String.Empty;
                                DD[3] = String.Empty;
                                break;
                        }
                    }

                }

                this.cboUF.Text = DD[0];
                this.txtCidade.Text = DD[1];
                this.txtBairro.Text = DD[2];
                this.txtRua.Text = DD[3];
            }
            catch (Exception ex)
            {
                MessageBox.Show(("Falha ao Buscar o Cep" + ("
"
                                + (ex.Message + ("
" + ex.Source)))));
            }

        }




#477204 - 17/10/2017 19:04:48

MAGNAN
SUMARE
Cadast. em:Abril/2011


Então, eu tentei utilizar o exemplo do site, porem da erro no ds.ReadXml

Citação:
  O tipo "XmlReader" está definido em um assembly que não é referenciado. Você deve adicionar uma referência ao assembly "System.Xml, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e"  


__________________________________
- Everyone has a chance

 Tópico anterior Próximo tópico Novo tópico


Para responder este tópico o login é requerido
Se você já possui uma conta de usuário por favor faça seu login
Se você não possui uma conta de usuário use a opção Criar usuário