USO DO DATASET

NOWLIGHTS 10/10/2017 00:58:30
#477074
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[Ô]);
}

KERPLUNK 10/10/2017 08:53:51
#477075
Não use DataSet, use List<T> e como está trazendo um XML, serialização.
LAMPIAO 10/10/2017 13:20:37
#477082
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.
NOWLIGHTS 10/10/2017 13:35:59
#477084
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?
NOWLIGHTS 10/10/2017 13:59:00
#477085
(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

EDUFS 10/10/2017 14:55:48
#477086
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)
NOWLIGHTS 13/10/2017 18:34:50
#477138
Desse geito não funciona
MOREIRA 13/10/2017 19:29:43
#477141
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

NOWLIGHTS 16/10/2017 14:32:39
#477179
No xamarin cross plataform não tem Referencia Web
OMAR2011 17/10/2017 18:52:31
#477203
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)))));
}

}
NOWLIGHTS 17/10/2017 19:04:48
#477204
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[Ô]

Página 1 de 2 [12 registro(s)]
Tópico encerrado , respostas não são mais permitidas