1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

VB2008 - Count dá 0

Discussão em 'Programação' iniciada por tds, 21 de Abril de 2009. (Respostas: 4; Visualizações: 637)

  1. tds

    tds Power Member

    Código:
    dtAdapt(6) = New OleDbDataAdapter("SELECT MateriaID, ProdutoID, RestricaoID, Valor FROM MatrizCoeficientes WHERE MatrizCoeficientes.ProdutoID=(SELECT ProdutoID FROM Produtos WHERE Nome='" & nomeProduto & "')", dbConn)
                    dtAdapt(6).Fill(dtSet, "tabelaGrid")
                    dtAdapt2(4) = New OleDbDataAdapter("SELECT Custos FROM MateriasProdutos WHERE ProdutoID=(SELECT ProdutoID FROM Produtos WHERE Nome='" & nomeProduto & "')", dbConn)
                    dtAdapt2(4).Fill(dtSet2, "MateriasProdutos")
    Numa coisinha destas, porque haverá o count do "tabelaGrid" dar 0? D:

    É que este código tá a dar para uns produtos epara outros nao D:

    Não percebo =z
     
  2. iznougud

    iznougud I quit My Job for Folding

    Experimenta com algo do género:

    Código:
    SELECT MateriaID, ProdutoID, RestricaoID, Valor FROM (MatrizCoeficientes LEFT JOIN Produtos on MatrizCoeficientes.ProdutoId = Produtos.ProdutoId) WHERE Produtos.Nome='" & nomeProduto & "';"
    
     
  3. PNDmartins

    PNDmartins Power Member

    Basicamente obter dados com strings nunca é uma boa opcção, porque "Teste" já é diferente de "Teste " e na base de dados, basta um espaço ou algo a mais sem querer e o valor já não é encontrado.

    Das duas uma, ou tratas a string antes para teres a certeza que o valor vai como deve de ser, ou quando puxas pela primeira vez o nome, trazes logo o ID e deixas o ID em cache para mais tarde já o teres e não te dar erros desses.
     
  4. tds

    tds Power Member

    Hm... Neste caso, por favor, apaguem-me este tópico, pq o problema é mesmo não haver registos na base de dados para outros Produtos D: Só hoje é que me apercebi que a base de dados estava incompleta D:

    Mesmo assim, obrigado pela ajuda e prontidão! =D

    Estou a trabalhar com strings porque é a unica maneira que conheço para tal D:

    Como é que eu poderia guardar o ID em cache?
     
  5. PNDmartins

    PNDmartins Power Member

    Uma forma é:

    Quando vais a base de dados buscar os dados puxas o nome e o id dos produtos/items/whatever.

    Após obter os dados, antes de os meteres onde quer que os tens que meter, crias uma ArrayList ou uma List(Of) ou um Dictionary(of,of) e preenches as listas com os dados.

    Se guardares essa lista num modulo por exemplo, enquanto não for alterada e enquanto o programa se manter aberto tens acesso a lista, mas tens que ter atenção a detalhes como por exemplo, sempre que se alterar um objecto na base de dados, tens que actualizar a lista, sempre que se eliminar um objecto na base de dados tens que actualizar a lista, etc..
     

Partilhar esta Página