2013-03-12 4 views
11

साथ डालने आईडी जाओ मैं इस पद्धति का उपयोग कर रहा हूँ एक तालिका में एक पंक्ति सम्मिलित करने के लिए:सी # ऑटो वृद्धि

  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(); 

मैं भी हवलदार आईडी स्तंभ है Auto Increment। और मैं जानना चाहता हूं कि क्या आईडी प्राप्त करना संभव है जब मैं एक नई पंक्ति डालता हूं।

+0

क्या यह आप के बाद क्या है? http://stackoverflow.com/questions/7982520/get-autoincrement-value-after-insert-query-in-mysql – JeremyWeir

+0

नहीं। मुझे वह आईडी चाहिए जो मैं डाल रहा हूं – MTA

उत्तर

23

आप MySQLCommand LastInsertedId संपत्ति तक पहुंच सकते हैं।

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

धन्यवाद यह काम करता है !! और यदि मैं एक सम्मिलित कथन में एकाधिक पंक्ति डालना चाहता हूं, तो हर आईडी प्राप्त करना संभव है? – MTA

+0

इस विधि का उपयोग नहीं कर रहा है .. – dugas

+0

यह मेरे लिए भी काम करता है। धन्यवाद +1 – docesam

0

मूल रूप से आप अपने CommandText के अंत में जोड़ना चाहिए:

SET @newPK = LAST_INSERT_ID(); 

और एक अन्य ADO.NET पैरामीटर "newPK" जोड़ें। कमांड निष्पादित होने के बाद इसमें नई आईडी होगी।

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(); 
संबंधित मुद्दे