none
Como fazer com que o ultimo id inserido apareça em uma label RRS feed

  • Pergunta

  • Olá, 

    é o seguinte, eu tenho um webform que inseri um cliente e pega esse id usando last_insert_id do mysql

    eu quero saber como fazer para esse id aparecer em uma label em outro webform.

    estou usando Asp.Net com C#.

    para mais informações é só pedir ^^

    Obrigado desde já.

    esse é o código que inseri novo cliente e pega o id.

    se tiver algo errado, me corrijam por favor.

                MySqlConnection conn = new MySqlConnection(conexao);
                MySqlCommand cmd = new MySqlCommand("Insert into clientes (nome_cli, email_cli, rg_cli, cpfcnpj_cli, endereco_cli, cep_cli," +
                                                    "bairro_cli, telres_cli, telcom_cli, cel_cli, cidade_cli, estado_cli, data_cli, hora_cli)"+
    
                                                                "VALUES"+
    
                                  "( '" + tbxNomeCli.Text + "','" + tbxEmailCli.Text + "','" + tbxRgCli.Text + "','" + tbxCpfcnpjCli.Text + "','" + tbxEnderecoCli.Text + "', " +
                                    "'" + tbxCepCli.Text + "','" + tbxBairroCli.Text + "','" + tbxTelResCli.Text + "', '" + tbxTelComCli.Text + "', '" + tbxCelCli.Text + "', " +
                                     "'" + tbxCidadeCli.Text + "', '" + dpdownEstadoCli.SelectedItem.Text + "', now(), now())", conn);
    
               
               
                
                
                conn.Open();
    
          
    
    
          cmd.ExecuteNonQuery();
    
          cmd.CommandText = "SELECT LAST_INSERT_ID() ";
         int idRetorno = Convert.ToInt32(cmd.ExecuteScalar().ToString());
                    
                  
                    cmd.Dispose();
                    
                    conn.Close();
                    Response.Redirect("NovaOs.aspx");


    segunda-feira, 23 de julho de 2012 12:48

Respostas

  • Amigo,

    Vamos por partes....

    1 - se você consegue pegar o ID do insert então passa isso via QUERYSTRING, nome_da_pagina.aspx?id=ID_DO INSERT
    2 - na página que você mando o QUERYSTRING pegue o valor do ID da seguinte forma:

    //C#
    SUA_LABEL.Text = Request.QueryString["id"].ToString();
    
    //VB
    SUA_LABEL.Text = Request.QueryString("id").ToString()

    Espero ter ajudado e boa sorte!


    Não esqueça de marcar como útil uma resposta que te ajude.
    "A diversão é a alma do negócio"

    segunda-feira, 23 de julho de 2012 14:13
  • faz assim

    SQL = "select max(campoid) from tabela";

    SqlCommand cmd = new SqlCommand(SQL, con); cmd.Connection = con; con.Open(); sqlDataReader dr = cmd.ExecuteReader() ; if (dr.HasRows) { while(dr.read()) { sualabel.text = dr["campoid"].toString(); } }



    Junior

    segunda-feira, 23 de julho de 2012 14:15

Todas as Respostas

  • Amigo,

    Veja se esse link te ajuda http://stackoverflow.com/questions/405910/get-the-id-of-inserted-row-using-c-sharp 

    Espero ter ajudado e boa sorte!


    Não esqueça de marcar como útil uma resposta que te ajude.
    "A diversão é a alma do negócio"

    segunda-feira, 23 de julho de 2012 13:13
  • Olá Lucas, 

    então, o problema que eu não consigo resolver é retornar o ultimo ID na label em outro webform.

    após a inserção de dados na tabela clientes ele redireciona para outro webform, que é o da nova os, e lá estaria a label com o código do cliente que foi adicionado. 

    Obrigado pela atenção. 

    segunda-feira, 23 de julho de 2012 13:29
  • dá um select max no id assim

    sql = "select max(campoid) from tabela"


    Junior

    segunda-feira, 23 de julho de 2012 13:42
  • certo, mas como eu faço para esse valor aparecer na label?
    segunda-feira, 23 de julho de 2012 14:07
  • Amigo,

    Vamos por partes....

    1 - se você consegue pegar o ID do insert então passa isso via QUERYSTRING, nome_da_pagina.aspx?id=ID_DO INSERT
    2 - na página que você mando o QUERYSTRING pegue o valor do ID da seguinte forma:

    //C#
    SUA_LABEL.Text = Request.QueryString["id"].ToString();
    
    //VB
    SUA_LABEL.Text = Request.QueryString("id").ToString()

    Espero ter ajudado e boa sorte!


    Não esqueça de marcar como útil uma resposta que te ajude.
    "A diversão é a alma do negócio"

    segunda-feira, 23 de julho de 2012 14:13
  • faz assim

    SQL = "select max(campoid) from tabela";

    SqlCommand cmd = new SqlCommand(SQL, con); cmd.Connection = con; con.Open(); sqlDataReader dr = cmd.ExecuteReader() ; if (dr.HasRows) { while(dr.read()) { sualabel.text = dr["campoid"].toString(); } }



    Junior

    segunda-feira, 23 de julho de 2012 14:15
  • Olá Junior, 

    Eu fiz de acordo com o que você escreveu mas deu um erro: 

    IndexOutOfRangeException was unhandled by user code

    Could not find specified column in results: cod_cli

    aqui o código, que ficou parecido com o seu.

      string conexao = "server=localhost;User Id=root; password=droopy;Persist Security Info=True;database=milano";
    
        protected void Page_Load(object sender, EventArgs e)
        {
            string sql = "SELECT MAX(cod_cli) from clientes ";
            MySqlConnection conn = new MySqlConnection(conexao); 
            
            MySqlCommand cmd = new MySqlCommand(sql, conn);
            cmd.Connection = conn;
            conn.Open();
          MySqlDataReader dr = cmd.ExecuteReader();
    
          if (dr.HasRows)
          {
              while (dr.Read())
              {
                  lblIdCli.Text = dr["cod_cli"].ToString();
    
              }
          }
        }

    segunda-feira, 23 de julho de 2012 16:37
  • Lucas,

    me explique, como eu posso fazer isso? 

    eu não tenho muita experiência na área ainda. 


    segunda-feira, 23 de julho de 2012 16:39
  • Já consegui aqui, obrigado pela ajuda de vocês, valeu mesmo! 

    segunda-feira, 23 de julho de 2012 18:13
  • Esse código esta em c#???
    podes dizer como se faz em VB

    Pff...
    • Editado Miguel12340 sábado, 7 de fevereiro de 2015 14:57
    sábado, 7 de fevereiro de 2015 14:56