none
INSERT RRS feed

  • Pergunta

  • Olá pessoal,

    gostraia de saber se esta query está correta:

     

    Comm.CommandText = "INSERT INTO Pedidos( idProduto, produto, quantidade, valor) SELECT idProduto, produto, 1, valor FROM Produtos WHERE codigo = " + TextBox1.Text;

     

    se existe algum jeito melhor de fazer, por favor explique.

    Obrigado
    quinta-feira, 26 de junho de 2008 17:19

Respostas

  • Olá fabiano,

    fiz o seguinte:

     

    Comm.CommandText = "INSERT INTO Pedidos( idProduto, produto, quantidade, valor) SELECT idProduto, produto, 1, valor FROM Produtos WHERE Produtos.codigo = " + "'" + TextBox1.Text + "'";

     

    esse sistema é interno. Mas vou estudar isso.

    quinta-feira, 26 de junho de 2008 21:02

Todas as Respostas


  • Eduardo,

    Até cheguei a ver o seu código em outro post, se puder fixar a dúvida somente lá seria interessante, de qualquer forma, conforme eu mencionei a sua query está correta.
    Está retornando alguma msg de erro?

    []s.

    quinta-feira, 26 de junho de 2008 18:40
  • Eita pera lá, sua query está do jeito que muito gente gosta, procure sobre no google sobre Inject SQL. De qualquer forma vou colocar um post aqui usando seu insert como exemplo.

     

    Se ficar com alguma dúvida fique a vontade para perguntar.

     

    Code Snippet

    if object_id('tempdb.dbo.#Pedidos') is not null

    drop table #Pedidos

    if object_id('tempdb.dbo.#Produtos') is not null

    drop table #Produtos

    CREATE TABLE #Pedidos(idPRoduto Int, produto VarChar(200), quantidade int, valor decimal(8,2))

    CREATE TABLE #Produtos(idPRoduto Int, produto VarChar(200), Valor decimal(8,2), codigo Int)

    insert into #Produtos values(1,'SQL Server', 100000, 10)

    insert into #Produtos values(1,'Oracle', -1, 11)

    DECLARE @Command VarChar(2000),

    @TextBox VarChar(2000)

     

    SET @TextBox = '10' + ' or 1=1'

     

    SET @Command = 'INSERT INTO #Pedidos( idProduto, produto, quantidade, valor)

    SELECT idProduto, produto, 1, valor

    FROM #Produtos

    WHERE codigo =' + @TextBox

    PRINT @Command

    EXEC (@Command)

    GO

    select * from #Pedidos

     

     

     

    Repare que no TextBox eu passei '10' + ' or 1=1'.

     

    quinta-feira, 26 de junho de 2008 19:13
  • Olá fabiano,

    fiz o seguinte:

     

    Comm.CommandText = "INSERT INTO Pedidos( idProduto, produto, quantidade, valor) SELECT idProduto, produto, 1, valor FROM Produtos WHERE Produtos.codigo = " + "'" + TextBox1.Text + "'";

     

    esse sistema é interno. Mas vou estudar isso.

    quinta-feira, 26 de junho de 2008 21:02