C# Ado.Net ile son kaydedilen verinin id değeri nasıl alınır?

alattin (16999) 7 yıl önce sordu

SQL Insert komutu ile veritabanına eklenen son kaydın ID değeri nasıl alınır?

Toplam 1 cevap


alattin (16999) 7 yıl önce cevapladı

Ado.Net nesneleri ile işlem yapıyorsanız, SQL Insert komutunu kullandığınızda veritabanına kaydedilen veriye atanan ID değerini C# ile almak isteyebilirsiniz.

Aşağıdaki koddaki örnek gibi yapabilirsiniz.

SqlConnection con = new SqlConnection(connectionString);
        SqlCommand cmd = new SqlCommand("INSERT INTO Etkinlik(Ad,Tarih) VALUES(@ad, @tarih); SET @prmYeniId = SCOPE_IDENTITY()", con);
        cmd.Parameters.Add("@ad", SqlDbType.VarChar).Value = ad;
        cmd.Parameters.Add("@tarih", SqlDbType.VarChar).Value = tarih;      ;
        cmd.Parameters.Add("@prmYeniId", SqlDbType.Int).Direction = ParameterDirection.Output;
        con.Open();
        cmd.ExecuteScalar();
        int YeniId = (int)cmd.Parameters["@prmYeniId"].Value;
        con.Close();

 

SQL SCOPE_IDENTITY() metodu insert edilen veriye atanan ID değerini döndürür. SQL sorgusunun sonuna eklenen SCOPE_IDENTITY() metodu ile dönen değer @prmYeniID parametresine yüklenir.

Daha sonra cmd.Paremeters["@prmYeniId"].Value ile bu parametreye atanan değer okunarak istenilen değişkene atanır.

 

toprak34 7 yıl önce

@alattin @yeni diye biri varmış :)

alattin 7 yıl önce

@toprak34 evet ben de sonradan fark ettim :) bunu düzeltirim bir ara

alattin 7 yıl önce

@toprak34 düzelttim

toprak34 7 yıl önce

@alattin :)