Identitiy Kullanılan Tablodan Insert Sorgusunun Çıktısını Almak

MS Sql Server 2008Primary Key olarak kullandığınız kolonu eğer tablonuzda identity olarak tanımladıysanız, bir satır eklediğinizde primay key yani birincil anahtarın aldığı değeri normal bir insert sorgusu ile elde edemezsiniz. Halbuki bu değer size diğer işlemlerde gerekli olabilir. Bunun için aşağıdaki gibi bir kod kullanabilirsiniz. Burda kullandığım “outp” sql parametresi yapılan insert işleminden gelen identity kimlik değerini, yani primary key için otomatik üretilen değeri bize kodumuzda döndürüyor.

Ayrıca, MyConnectionString ismindeki connection string’imiz yani veritabanı bağlantı cümlemiz, web.config dosyanızdan okunmaktadır. Siz de bu parametreleri ve değişkenleri düzenleyerek aşağıdaki gibi kendi kodunuzu oluşturabilirsiniz.

                string ConnectionString = ConfigurationManager.ConnectionStrings["MyConnectionString"].ToString();
                SqlConnection conn = new SqlConnection(ConnectionString);
                conn.Open();
                SqlCommand cmd = new SqlCommand("Insert Into Tablo1 (Kolon1,Kolon2) Values (@Kolon1,@Kolon2); SELECT @ID = SCOPE_IDENTITY()", conn);
                cmd.Parameters.AddWithValue("@Kolon1", Parametre1);
                cmd.Parameters.AddWithValue("@Kolon2", Parametre2);
                SqlParameter outp = new SqlParameter("@ID", SqlDbType.Int);
                outp.Direction = ParameterDirection.Output;
                cmd.Parameters.Add(outp);
                cmd.ExecuteNonQuery();
                conn.Close();
                conn.Dispose();
                return int.Parse(outp.Value.ToString());
Recommended Posts

Leave a Comment


*