Inquiridor
INSERT não busca valor correto no ListBox

Pergunta
-
Bom dia!
Desenvolvi o seguinte select para retornar todos os PRODUTOS de determinada CATEGORIA que NÃO foram cadastrados numa REVENDA:
Code SnippetSELECT
p.ProdutoFROM
Produtos AS p LEFT OUTER JOIN ProdutoRevenda AS prON
p.ProdutoID = pr.ProdutoIDWHERE
(p.CategoriaID = @CategoriaID) AND (NOT EXISTS(
SELECT ProdutoIDFROM
ProdutoRevenda AS prWHERE
(ProdutoID = p.ProdutoID) AND (RevendaID = @RevendaID)))Essa query me retorna exatamente o que quero dentro de um ListBox (estou usando ASP.NET C#), daí seleciono os items que quero e faço o INSERT:
Code SnippetINSERT
INTO ProdutoRevenda(
ProdutoID, RevendaID)VALUES
(@ProdutoID,@RevendaID)O problema é que, mesmo linkando a propriedade Value do ListBox para Produtos.ProdutoID, o INSERT me retorna valores como -1, -2, -3, etc., conforme a ordem do ListBox. O código C# que estou usando para inserção é o seguinte:
Code Snippetusing (tadProdutoRevenda prodRev = new tadProdutoRevenda())
{
foreach (ListItem item in lsbEsquerda.Items)
{
if (item.Selected)
{
prodRev.InsertQuery(int.Parse(item.Value), 1);
}
}
}
//mantive o parâmetro de RevendaID fixo como 1 para fazer os testes.
Não sei se o problema está na query ou no código, resolvi postar nessa seção pois vi que o pessoal ajuda mesmo. Agradeço desde já por qualquer ajuda.
Um abraço!
Todas as Respostas
-
-
Junior,
Foi exatamente o que imaginei. Entretanto, isso é estranho porque estou buscando o Value e não o Index. Só para constar, antes de montar esse Select com NOT EXISTS, eu tinha um Select padrão dos Produtos e o código funcionava normalmente. Modifiquei porque não é interessante mostrar produtos já cadastrados na revenda.
-
-
-
SELECT p.Produto
FROM
Produtos AS p LEFT OUTER JOIN ProdutoRevenda AS prON
p.ProdutoID = pr.ProdutoIDWHERE
(p.CategoriaID = @CategoriaID) AND (p.ProdutoID Not in(
SELECT ProdutoIDFROM
ProdutoRevenda AS prWHERE
(ProdutoID = p.ProdutoID) AND (RevendaID = @RevendaID))) -
-