none
Como implementar sem "DataSet" - otimizar DataTable - melhor maneira RRS feed

  • Pergunta

  •  

    Estou usando o seguinte código, mas acho que ele pode ser aprimorado/otimizado. O que posso melhorar nele?

     

    Gostaria de otimizar o datatable, já tentei e nao consegui implementar sem o dataset, se alguém souber por favor ajude.

     

    Se souberem de outras práticas para otimizar datatables, gostaria de conhecer.

     

    Dim BairroComercial As New OleDbCommand("SELECT Nome FROM(tblBairros) WHERE (CodBairro = @CodBairroCom)", connAccess)

     

    BairroComercial.Parameters.AddWithValue("@CodBairroCom", drAccess(17).ToString())

     

    Dim daBairroComerc As OleDbDataAdapter = New OleDbDataAdapter(BairroComercial)

     

    Dim dsSetBairroComerc As New DataSet

     

    'preenche o dataset

    daBairroComerc.Fill(dsSetBairroComerc)

     

    'inspe‡Æo dos dados do resultado da consulta no ACCESS

    Dim drBairroComerc As DataRow

     

    If dsSetBairroComerc.Tables(0).Rows.Count > 0 Then

    drBairroComerc = dsSetBairroComerc.Tables(0).Rows(0)

     

    If Not IsDBNull(drBairroComerc(0).ToString()) OrElse Not String.IsNullOrEmpty(drBairroComerc(0).ToString()) Then

    cmd_EnderecoComercial.Parameters.AddWithValue("@BairroComerc", drBairroComerc(0).ToString())

    Else

    cmd_EnderecoComercial.Parameters.AddWithValue("@BairroComerc", DBNull.Value)

    End If

     

    Else

     

    cmd_EnderecoComercial.Parameters.AddWithValue("@BairroComerc", DBNull.Value)

    End If

     

     

     

    Aguardo ajuda.

     

    terça-feira, 9 de dezembro de 2008 13:23

Respostas

  •  Magno Machado wrote:

    Como poderia então implementar / alterar nesse código do primeiro post, sem utilizar "dataset" ?

     

    Olá Magno,

     

    Uma opção, é utilizar um DataTable diretamente, ao invés de utilizar um DataSet com um DataTable dentro:

     

    Code Snippet

     

     ' ...

     

     Dim dtSetBairroComerc As New DataTable

     

     'preenche o DataTable

     daBairroComerc.Fill(dtSetBairroComerc)

     

     'inspeção dos dados do resultado da consulta no ACCESS

     Dim drBairroComerc As DataRow

     

     If dtSetBairroComerc.Rows.Count > 0 Then

    drBairroComerc = dtSetBairroComerc.Rows(0)

    '...

     End If

     

     '...

     

     

    Abraços,
    Caio Proiete




    Caio Proiete
    http://www.caioproiete.com
    quarta-feira, 10 de dezembro de 2008 13:03
    Moderador

Todas as Respostas

  • Olá Magno,

     

       Amigo, é dificil ajudar você por que não existe uma boa pratica pra customizar um DataTable, o que poderia existir é.. ter um problema, achar uma solução para o mesmo, e tentar aprimorar está solução com tecnicas diferenciadas.

     

       Sobre o DataTable, seria mais simples poder dar uma dica se você fosse mais claro na sua duvida.

     

       Aconselho que de uma lida na documentação que fala sobre Datatable.

     

      Documentação DataTable Class 

      http://msdn.microsoft.com/en-us/library/system.data.datatable.aspx

     

     

    Bom espero ter ajudado.

     

    Atenciosamente,

    Flávio Secchieri Mariotti

    http://fsmworlddotnet.blotspot.com

     

     

    quarta-feira, 10 de dezembro de 2008 01:34
  •  

     

    Como poderia então implementar / alterar nesse código do primeiro post, sem utilizar "dataset" ?

     

    OBS.: estou usando dataset, gostaria de saber de que forma poderia especificar "sem dataset", aumentando desempelho, para que seja ajustado nesse código que postei.

     

    Aguardo Ajuda.

    quarta-feira, 10 de dezembro de 2008 11:36
  •  Magno Machado wrote:

    Como poderia então implementar / alterar nesse código do primeiro post, sem utilizar "dataset" ?

     

    Olá Magno,

     

    Uma opção, é utilizar um DataTable diretamente, ao invés de utilizar um DataSet com um DataTable dentro:

     

    Code Snippet

     

     ' ...

     

     Dim dtSetBairroComerc As New DataTable

     

     'preenche o DataTable

     daBairroComerc.Fill(dtSetBairroComerc)

     

     'inspeção dos dados do resultado da consulta no ACCESS

     Dim drBairroComerc As DataRow

     

     If dtSetBairroComerc.Rows.Count > 0 Then

    drBairroComerc = dtSetBairroComerc.Rows(0)

    '...

     End If

     

     '...

     

     

    Abraços,
    Caio Proiete




    Caio Proiete
    http://www.caioproiete.com
    quarta-feira, 10 de dezembro de 2008 13:03
    Moderador
  •  

    Existem outras maneiras de tratar / utilizar datatables ? Que outra maneira poderia ser otimizado?

     

     

    Aguardo ajuda.

    quarta-feira, 10 de dezembro de 2008 13:49
  • Magno,

     

      Para tirar o Dataset da jogada você pode utilizar o IDataReader e fazer um Datatable.Load ou usar direto um IDataAdapter...

     

     

    Atenciosamente,

    Flávio Secchieri Mariotti

    http://fsmworlddotnet.blogspot.com

     

    quinta-feira, 11 de dezembro de 2008 01:52
  •  Flavio Secchieri Mariotti wrote:

     

    Magno,

     

      Para tirar o Dataset da jogada você pode utilizar o IDataReader e fazer um Datatable.Load ou usar direto um IDataAdapter...

     

     

    Pesquisei melhor e encontrei alguns links interessantes que me ajudaram a compreender melhor como trabalhar com datatable sem dataset, seguem:

     

    http://davidhayden.com/blog/dave/archive/2005/12/14/2623.aspx

     

    http://forums.microsoft.com/MSDN-BR/ShowPost.aspx?PostID=3789108&SiteID=21

     

    http://msdn.microsoft.com/pt-br/library/system.data.idataadapter.aspx

     

    http://www.velocityreviews.com/forums/t70972-whats-the-difference-between-idataadapter-and-idbdataadapter.html

     

     

    Abraço e obrigado pela ajuda.

     

    quinta-feira, 11 de dezembro de 2008 11:16