Usuário com melhor resposta
Selecionar o último ID da tabela desejada e colocar numa variável UltimoID

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.
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
Todas as Respostas
-
-
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.
-
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