2013-03-12 11 views
11

ile insert ID alın:C# Bir tabloya bir satır eklemek için bu yöntemi kullanıyorum Oto Artım

  MySqlConnection connect = new MySqlConnection(connectionStringMySql); 
      MySqlCommand cmd = new MySqlCommand(); 

      cmd.Connection = connect; 
      cmd.Connection.Open(); 

      string commandLine = @"INSERT INTO Wanted (clientid,userid,startdate,enddate) VALUES" + 
       "(@clientid, @userid, @startdate, @enddate);"; 
      cmd.CommandText = commandLine; 

      cmd.Parameters.AddWithValue("@clientid", userId); 
      cmd.Parameters.AddWithValue("@userid", ""); 
      cmd.Parameters.AddWithValue("@startdate", start); 
      cmd.Parameters.AddWithValue("@enddate", end); 

      cmd.ExecuteNonQuery(); 
      cmd.Connection.Close(); 

Ben de Auto Increment var id sütununu hav. Ve yeni bir satır eklediğimde oluşturulan kimliği almanın mümkün olup olmadığını bilmek istiyorum.

+0

Bundan sonra var mı? http://stackoverflow.com/questions/7982520/get-autoincrement-value-after-insert-query-in-mysql – JeremyWeir

+0

Hayır. – MTA

cevap

23

MySqlCommand LastInsertedId özelliğine erişebilirsiniz.

SET @newPK = LAST_INSERT_ID(); 

ve başka ADO.NET parametresini "newPK" ekleyin:

cmd.ExecuteNonQuery(); 
long id = cmd.LastInsertedId; 
+0

'u eklediğim kimliği istiyorum Çalıştığınız için teşekkür ederiz! ve bir insert deyiminde birden çok satır eklemek istersem, her kimliği almak mümkün mü? – MTA

+0

Bu yöntem kullanılmaz .. – dugas

+0

benim için de çalıştı. teşekkürler +1 – docesam

0

Temelde size CommandText sonuna kadar bu eklemek gerekir. Komut çalıştırıldıktan sonra yeni bir ID içerecektir.

1
MySqlConnection connect = new MySqlConnection(connectionStringMySql); 
MySqlCommand cmd = new MySqlCommand(); 

cmd.Connection = connect; 
cmd.Connection.Open(); 

string commandLine = @"INSERT INTO Wanted (clientid,userid,startdate,enddate) " 
    + "VALUES(@clientid, @userid, @startdate, @enddate);"; 
cmd.CommandText = commandLine; 

cmd.Parameters.AddWithValue("@clientid", userId); 
**cmd.Parameters["@clientid"].Direction = ParameterDirection.Output;** 
cmd.Parameters.AddWithValue("@userid", ""); 
cmd.Parameters.AddWithValue("@startdate", start); 
cmd.Parameters.AddWithValue("@enddate", end); 

cmd.ExecuteNonQuery(); 
cmd.Connection.Close(); 
İlgili konular