none
Obter somente as datas dentro de um determinado período, armazenado num arquivo xml RRS feed

  • Pergunta

  • Olá, no código abaixo, eu estou tentando obter o nome e a data de aniversário das pessoas que farão aniversário entre o dia de hoje e nos próximos 15 dias. Sendo que a cada dia, o dia atual muda obviamente.

    No arquivo xml, o campo "Data", armazena datas no formato "dd/mm/yyyy".

    Abaixo segue minha tentativa até o momento... o problema está na linha 07, indicado no código... não sei como fazer este filtro.

    Vou usar um arquivo xml em vez de um banco de dados Sql Server... pois estou enfrentando problemas com o banco em SQL Server, o qual só funciona no meu micro e nos outros não... mas isso não vem mais ao caso.

    Grato pela ajuda

    Dim xmlFile As XmlReader
    xmlFile = XmlReader.Create("Aniversários.xml", New XmlReaderSettings())
    Dim ds As New DataSet
    ds.ReadXml(xmlFile)
    
    Dim dv As DataView 'ordenar Nome em ordem crescente
    07: dv = New DataView(ds.Tables(0), "Data >= #" & Now.Day & "#", "Nome", DataViewRowState.CurrentRows)
    
    Form2.DataGridView1.DataSource = dv
    Form2.DataGridView1.Columns(0).Width = 400


    I'm just a guy who likes to program for fun.

    domingo, 6 de outubro de 2013 19:32

Todas as Respostas

  • Dá uma olhada aqui pode te ajudar:

    http://www.macoratti.net/vbn5_dvd.htm

    tem um exemplo aí que faz justamente o que voce quer, filtra intervalo de datas em um dataview:

    Private Sub btnSelecionar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSelecionar.Click
    
    Dim vCriterio As String
    
    vCriterio = "Nascimento >= " + "'" + Convert.ToString(Format(Me.dtpInicio.Value, "Short Date")) + "'"
    vCriterio &= " and Nascimento <= " + "'" + Convert.ToString(Format(Me.dtpFim.Value, "Short Date")) + "'"
    
    dvAniversarios = New DataView(ds.Tables("Clientes"), vCriterio, "Nascimento ASC", DataViewRowState.OriginalRows)
    
    Me.lvClientes.Items.Clear()
    
    For i As Integer = 0 To dvAniversarios.Count - 1
    
    lvClientes.Items.Add(dvAniversarios.Item(i).Item(0).ToString)
    lvClientes.Items(i).SubItems.Add(Format(dvAniversarios.Item(i).Item(1).ToString))
    lvClientes.Items(i).SubItems.Add(Format(dvAniversarios.Item(i).Item(2), "Short Date"))
    
    Next
    
    End Sub

    Espero ter ajudado

    segunda-feira, 28 de outubro de 2013 20:10