none
Selecionar o último ID da tabela desejada e colocar numa variável UltimoID RRS feed

  • Pergunta

  •  Bom dia pessoal, 

    Necessito da ajuda de vocês pois não estou conseguindo pegar o último Id (código Int) da tabela selecionada.

    Gostaria de um código simples para pegar o Id e passar para uma caixa de texto. Como faço isso?

    Segue abaixo o código que estou utilizando e não está funcionando - retorna "0" no debug.

      cmd = new SqlCommand("SET @UltimoID = SELECT MAX (Cod_Base_Titulos_Pagos) FROM Base_Titulos_Pagos");
                        cod_Base_Titulos_PagosTextBox.Text = Convert.ToString(UltimoID);
                        cod_Base_Titulos_PagosTextBox.Refresh();

    segue abaixo o código inteiro :

      private void btn_InserirPagto_Click(object sender, EventArgs e)
            {
    
                Data_Agora = DateTime.Now;
            //  data_LoginTextBox.Text = Data_Agora.ToShortDateString();
            //  login_NameTextBox.Text = Login.DadosGerais.Loginusuario;
                btn_salvar.Enabled = true;
                btn_salvar.BackColor = Color.DarkOrange;
    
                if (data_PagamentoDateTimePicker1.Text != " " && valor_PagoTextBox1.Text != " " && banco_DebitadoTextBox1.Text != " " && numero_ChequeTextBox1.Text != " ")
                {
                    try
                    {
                        cmd = new SqlCommand("INSERT INTO Base_Titulos_Pagos(Data_Pagamento, Total_Pago, Banco_Debitado, Numero_Cheque, Historico, Data_Login, Login_Name)"
                        + "VALUES(@Data_Pagamento, @Total_Pago, @Banco_Debitado, @Numero_Cheque, @Historico, @Data_Login, @Login_Name)", conn);
                        conn.Open();
                        DateTime DataPagamento = Convert.ToDateTime(data_PagamentoDateTimePicker1.Value.ToShortDateString());
                        cmd.Parameters.AddWithValue("@Data_Pagamento", DataPagamento);
                        decimal TotalPago = Convert.ToDecimal(valor_PagoTextBox1.Text);
                        cmd.Parameters.AddWithValue("@Total_Pago", TotalPago);
                        Int32 BancoDebitado = Convert.ToInt32(banco_DebitadoTextBox1.Text);
                        cmd.Parameters.AddWithValue("@Banco_Debitado", BancoDebitado);
                        String NumeroCheque = Convert.ToString(numero_ChequeTextBox1.Text);
                        cmd.Parameters.AddWithValue("@Numero_Cheque", NumeroCheque);
                        String Historico = Convert.ToString(historicoTextBox1.Text);
                        cmd.Parameters.AddWithValue("@Historico", Historico);
                        DateTime Data_Agora = DateTime.Now;
                        cmd.Parameters.AddWithValue("@Data_Login", Data_Agora);
                        String LoginName = Login.DadosGerais.Loginusuario;
                        cmd.Parameters.AddWithValue("@Login_Name", LoginName);
                        Int32 result = cmd.ExecuteNonQuery();
                        MessageBox.Show("Inicie a Seleção de Títulos para Pagamentos! " + result.ToString() + "Cheque Inserido!");
                        cmd = new SqlCommand("SET @UltimoID = SELECT MAX (Cod_Base_Titulos_Pagos) FROM Base_Titulos_Pagos");
                        cod_Base_Titulos_PagosTextBox.Text = Convert.ToString(UltimoID);
                        cod_Base_Titulos_PagosTextBox.Refresh();
                        numero_Parcelas_a_PagarDataGridView.Enabled = true;
                    }
                    catch (Exception Ex)
                    {
                        MessageBox.Show("Erro! " + Ex.Message);
                    }
                    finally
                    {
                        conn.Close();
                        btn_fechar.Enabled = true;
                    }
                }
                else
                {
                    MessageBox.Show("Informe todos os Dados necessários para incluir o Pagamento do Título!");
                }
    
            }

    Muito obrigado pela atenção de todos. 

    Agradeço desde já.

    Flávio Rocha.

    sexta-feira, 5 de julho de 2019 14:15

Respostas

  • Boa noite, peço desculpas pela demora em responder. Segue o código exemplo. 

    SqlDataReader reader  = cmd.ExecuteReader();
    While(reader.Read())
    {
    int valor=reader[0];
    }
    reader.Close();


    Gilson Joanelo - Desenvolvedor Web

    • Marcado como Resposta F.oliveirarocha terça-feira, 30 de julho de 2019 01:28
    domingo, 21 de julho de 2019 02:23

Todas as Respostas

  • Select max(campo) from tabela


    Gilson Joanelo - Desenvolvedor Web

    domingo, 7 de julho de 2019 23:19
  • Gilson bom dia,

    Coloco esse select no lugar do que eu coloquei: 

     cmd = new SqlCommand("SELECT MAX (Cod_Base_Titulos_Pagos) FROM Base_Titulos_Pagos");

    OK, e agora como passo o valor selecionado (que é um Int - ID) para a variável ÚltimoID para passar para o TextBox?

    Corrija o código se for necessário.

    Obrigado pela ajuda.

    segunda-feira, 8 de julho de 2019 15:04
  • Boa noite, peço desculpas pela demora em responder. Segue o código exemplo. 

    SqlDataReader reader  = cmd.ExecuteReader();
    While(reader.Read())
    {
    int valor=reader[0];
    }
    reader.Close();


    Gilson Joanelo - Desenvolvedor Web

    • Marcado como Resposta F.oliveirarocha terça-feira, 30 de julho de 2019 01:28
    domingo, 21 de julho de 2019 02:23