none
Problema com data no Access e SQL Server RRS feed

  • Pergunta

  • Pessoal

    Estou tendo um problema quando carrego os dado de uma tabela access para um dataset.

    O problema está sendo nos campos data, pois enquanto no access no campo data o valor está 28/09/2000 ao carregar para o dataset fica como 04/10/2000 00:00:00.

    Alguém sabe como posso pegar o dado que está originalmente no access ou se tenho que fazer alguma converção na data?

    Segue o exemplo de como estou carregando os dados no DataSet.


    Public Function RetornaConnectionAccess() As System.Data.OleDb.OleDbConnection

    Return New System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" _

      & "Data Source=D:\Teste\Teste.mdb")

    End Function

     

    Public Function RetornaDataAdapterAccess(

    ByRef ObjetoConnection As System.Data.OleDb.OleDbConnection, _

    ByVal ComandoSQL As String) As System.Data.OleDb.OleDbDataAdapter

    Return New System.Data.OleDb.OleDbDataAdapter(ComandoSQL, ObjetoConnection)

    End Function

     

    Dim conVersao6 As New OleDb.OleDbConnection

    Dim DAVersao6 As OleDb.OleDbDataAdapter

    Dim dtsVersao6 As New DataSet

     

    conVersao6 = insAcessoADados.RetornaConnectionAccess

    conVersao6.Open()

    DAVersao6 = insAcessoADados.RetornaDataAdapterAccess(conVersao6, "SELECT * FROM TabTeste")

    DAVersao6.Fill(dtsVersao6)

    conVersao6.Close()

     

    ‘O valor retornado nesta linha é 04/10/2000 00:00:00 sendo que no Banco de Dados Access o valor 28/09/2000

    dtsVersao6.Tables(0).Rows(i).Item("DataTeste").ToString)

     

    Se alguém puder ajudar agradeço...

    quinta-feira, 25 de março de 2010 12:47

Respostas

  •  

     

    ‘O valor retornado nesta linha é 04/10/2000 00:00:00 sendo que no Banco de Dados Access o valor 28/09/2000

    dtsVersao6.Tables(0).Rows(i).Item("DataTeste").ToString)

     

     


    Não pode ser! Veja se não está a ver um registo diferente ou um campo diferente!

    De qualquer maneira para retirar as horas pode fazer:

    DateTime.Parse(dtsVersao6.Tables(0).Rows(i).Item(

    "DataTeste").ToString)).ToShortDateString

    Espero que ajude!

     


    Jorge Paulino
    Visual Basic em Português
    http://vbtuga.blogspot.com/

    sexta-feira, 26 de março de 2010 13:19

Todas as Respostas

  • Tenta usar DataTable

    Dim dtsVersao6 As DataTable

     

     


    Just Be Humble Malange!
    sexta-feira, 26 de março de 2010 00:45
    Moderador
  •  

     

    ‘O valor retornado nesta linha é 04/10/2000 00:00:00 sendo que no Banco de Dados Access o valor 28/09/2000

    dtsVersao6.Tables(0).Rows(i).Item("DataTeste").ToString)

     

     


    Não pode ser! Veja se não está a ver um registo diferente ou um campo diferente!

    De qualquer maneira para retirar as horas pode fazer:

    DateTime.Parse(dtsVersao6.Tables(0).Rows(i).Item(

    "DataTeste").ToString)).ToShortDateString

    Espero que ajude!

     


    Jorge Paulino
    Visual Basic em Português
    http://vbtuga.blogspot.com/

    sexta-feira, 26 de março de 2010 13:19