Pegar ultimo id inserido C Sharp Mysql
Como posso pegar o ultimo id inserido no banco de dados Mysql? Estou fazendo assim a inserção:
MySqlConnection con = configuracao.Conectar(); MySqlCommand cmm = new MySqlCommand("INSERT INTO funcionarios(nome,sobrenome)VALUES('" + txtNome.Text + "','" + txtSobreNome.Text + "')"); cmm.ExecuteNonQuery(); cmm.Connection.Close(); cmm.Dispose(); con.Close();
Mauricio Souza,
Curtidas 0
Respostas
Pjava
28/05/2013
Você poderia fazer um select max(id) from tabela, guardar esse valor em uma variável e depois trabalhar com ele em seu insert se é isso que te interessa.
GOSTEI 0
Mauricio Souza,
28/05/2013
Acabei fazendo assim aqui, com last_insert_id() no final da query, mas não sei se essa é a maneira mais correta de fazer:
e depois faço assim:
string sql = "INSERT INTO funcionarios(nome,sobrenome)VALUES(@nome,@sobrenome);Select LAST_INSERT_ID();";
e depois faço assim:
int idCadastrado = Convert.ToInt32(cmm.ExecuteScalar());
GOSTEI 0
Mauricio Souza,
28/05/2013
Se eu quiser fazer duas queries você sabe como posso fazer? Em relação a abrir e fechar as conexões. Tenho que fechar a conexão e abri-la novamente ou consigo fazer as duas consultas e depois fechá-las?
GOSTEI 0
Michael Sampaio
28/05/2013
Mauricio,
Faço da seguinte forma nao sei se sera util,
porem fasso o seguinte crio uma tabela para controlar
ids do banco salvando o nome da tabela e o id entao sempre
que vou cadastrar algo passo assim por exemplo
codigo(tabela) entao essa função verifica la na tabela codigo
o ultimo id referente a tabela que indiquei adiciona 1 salva na
tabela codigo e retorna o id valido para o campo solicitado ficaria assim
Faço da seguinte forma nao sei se sera util,
porem fasso o seguinte crio uma tabela para controlar
ids do banco salvando o nome da tabela e o id entao sempre
que vou cadastrar algo passo assim por exemplo
codigo(tabela) entao essa função verifica la na tabela codigo
o ultimo id referente a tabela que indiquei adiciona 1 salva na
tabela codigo e retorna o id valido para o campo solicitado ficaria assim
"INSERT INTO funcionarios(ID,nome,sobrenome)VALUES(“+CODIGO(FUNCIONARIO)+”,@nome,@sobrenome);
GOSTEI 0
Thiago Jesus
28/05/2013
Brother eu tenho essa feature que traz do banco o último ID e e incrementa 1.
Espero que ajude.
Espero que ajude.
SqlConnection conn = new SqlConnection(@"Server =(LocalDB)\v11.0;Database = banco; Integrated Security = SSPI;"); public int GeraCodigo() { int codigo = 0; conn.Open(); try { SqlCommand sql = new SqlCommand("Select MAX(codigo) From Contatos", conn); codigo = (int)sql.ExecuteScalar(); } catch (SqlException ex) { MessageBox.Show(ex.Message); } return codigo + 1; }
GOSTEI 0