in Eski Blog Yazılarım

C# ile SCOPE_IDENTITY() kullanmak.

MSSQL için geçerli olan SCOPE_IDENTITY() komutu ile o anda eklediğiniz bir satırın otomatik sayı alanının (Identity) değerini döndürür.

Şöyle;

   public static int SiparisNo(int Yaz, string Ciz)
        {
            using (SqlConnection Baglan = new SqlConnection("string"))
            {
                int Donen = 0;
                using (SqlCommand Ekle = Baglan.CreateCommand())
                {
                    Ekle.CommandText = "INSERT INTO TABLO(yaz,ciz) VALUES(@YAZ,@CIZ) SET @ID = SCOPE_IDENTITY()";

                    Ekle.Parameters.Add("@YAZ", SqlDbType.Int).Value = Yaz;
                    Ekle.Parameters.Add("@CIZ", SqlDbType.VarChar, 50).Value = Ciz;
                    Ekle.Parameters.Add("@ID", SqlDbType.Int).Direction = ParameterDirection.Output;

                    Baglan.Open();
                    Ekle.ExecuteNonQuery();
                    Donen = Convert.ToInt32(Ekle.Parameters["@ID"].Value);
                    Baglan.Close();
                }
            }

            return Donen;
        }

Yorum Bırak

Comment

  1. Merhaba;
    sql bir tabloya eklenen en son verinin id’sini alıp üzerine bir ekleyerek textboxa yazdıracak bir koda ihtiyacım var. yardımcı olabilirmisiniz.?

    Teşekkürler.

  2. hocam merhaba. kodlarım şu şekilde :
    OleDbCommand komut = new OleDbCommand(“Insert into MUSTERI_CALISANLARI(ADSOYAD,BOLUM_ID,GOREV_ID,FIRMA_ID,TARIH) values (@adsoyad,@bolum,@gorev,@firma,@tarih) “, baglan);
    komut.Parameters.AddWithValue(“@adsoyad”, tbAdSoyad.Text.ToUpper());
    komut.Parameters.AddWithValue(“@bolum”, cbBolum.SelectedValue);
    komut.Parameters.AddWithValue(“@gorev”, cbGorev.SelectedValue);
    komut.Parameters.AddWithValue(“@firma”, cbFirma.SelectedValue);
    komut.Parameters.AddWithValue(“@tarih”, tarih);
    baglan.Open();
    komut.ExecuteNonQuery();
    baglan.Close();

    SCOPE_IDENTITY() yi nereye yazacağım. bir türlü yapamadım.