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

ASP: Insert a partir de dropdownlist

Discussão em 'Web Development' iniciada por Jammin @, 31 de Maio de 2009. (Respostas: 9; Visualizações: 888)

  1. Jammin @

    Jammin @ Power Member

    Boas, estou a tentar introduzir dados a partir de dropdownlist's mas não estou a conseguir, estou a usar VB, mas dá erro na inserção, o código é este:

    Alguém que já o tenha feito me pode ajudar? Cumprimentos
     
  2. Jammin @

    Jammin @ Power Member

  3. alfinete

    alfinete Power Member

    acho que faltam ai @ antes de cada campo que queres inserir


    Código:
    
     private string caminhobd = Application.StartupPath.ToString() + @"\data\database.mdb";
    
    private void gravadados2()
            {
                ligacoes lig = new ligacoes();
     
           // string ligacao_bd = "Initial Catalog=testeforms;Data Source=localhost;Integrated Security=SSPI;";
    // ligação a bd access
                string ligacao_bd = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + lig.caminhobd + ";Persist Security Info=False;";
              OleDbConnection ligacao = new OleDbConnection(ligacao_bd);
             
            //Comando sql que insere cada campo preenchido na respectiva BD      
              OleDbCommand comando = new OleDbCommand("insert into tabteste values(@id,@nome,@img)", ligacao);
            //Adiciona valores em cada na respectivo campo da bd
             // id = da_id_db +1 
            comando.Parameters.Add(new OleDbParameter("@id",da_id_bd()+1));
            comando.Parameters.Add(new OleDbParameter("@nome", tbtxt.Text));
            comando.Parameters.Add(new OleDbParameter("@img", ""));
            ligacao.Open();
            if (comando.ExecuteNonQuery() == 1)
                lblerro.Text = "gravado com sucesso";
            else
                lblerro.Text = "Erro na interligação de dados. Por favor tente mais tarde";
            ligacao.Close();
            comando.Dispose();
          
           
                
           
    
            }
    
    tens aqui um exemplo em c#

    so convereteres para vb e esta pronto
     
  4. Jammin @

    Jammin @ Power Member

    Olá não percebeste o erro, eu só não consigo fazer insert's com dropdownlistbox's, com textbox's eu consigo, esse exemplo que mostraste usa textbox's.

    Em aplicações o . selecteditem funciona em asp é a primeira vez que uso não estou a conseguir :S

    Cumprimentos
     
  5. RicardoMoreira

    RicardoMoreira Power Member

    Qual o erro que te dá?
     
  6. Hey,sim a mensagem de erro q te esta a dar era capaz de ajudar bastante, ja agora os campos na bd sao todos "strings"(nvarchar) ? e como o alfinete mostrou no codigo é aconselhavel usares os parameters.add().
    Ja agora alfinete a ele nao lhe faltam os @ ja q nao esta a usar parameters ( q como ja disse acima na minha opiniao ele devia)

    cumpz
     
    Última edição: 2 de Junho de 2009
  7. AliFromCairo

    AliFromCairo Power Member

    Boas, caso seja possível, coloca aqui o erro que estás a obter, e os valores das tuas combo boxes.
     
  8. Jammin @

    Jammin @ Power Member

    Tá-me a dar este erro:

    Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.

    O código está assim:
    Alguma coisa mal? Nunca usei isto :S
    Em casa vejo o erro que dá com o código original, dado que não tenho aqui os ficheiros.

    Cumprimentos
     
  9. Jammin @

    Jammin @ Power Member

    Já consegui! Mania de usar os comandos de aplicações, afinal é .SelectedValue

    Agora tenho uma dúvida, já consegui como tinha e com parametros, qual será o melhor método e porquê?
     
  10. AliFromCairo

    AliFromCairo Power Member

    Ao utilizares o método que já aqui foi sugerido tens a vantagem de que o teu código iria continuar a funcionar se mudasses de data provider (apenas precisarias de mudar a connection string). Outra vantagem, e talvez a mais importante, é o facto de ao utilizares os denominados named parameters, evitas que o teu código fique susceptível a sql injection.
     

Partilhar esta Página