Şimdi Ara

Sorguda sadece ilk sonucu değiştirmek

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
6
Cevap
0
Favori
757
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Selam arkadaşlar donanimhaber forumunun bu bölümünden yararlanabileceğimi düşündüm...
    ASP.NET C# ve SQL e yeni başladım sayılır..

    Sorunuma gelince şimdi bi kütüphane ile ilgili kitap ödünç alma ve sıraya girme işlemleri yapılıyor.. Bir kitabı herhangi bir kullanıcı alırsa diğer kişiler bu kitap için sıraya giriyor ve kitabı alan iade ettiğinde sıraya giren ilk kişiye rezerve ediliyor ve diğer sıradakiler yine kitabı sırada bekliyor... Kendimce bi command yazdım fakat eksiklik var kitap iade edildiğinde sıraya giren herkese rezerve ediliyor habuki sadece ilk sıraya girene rezerve edilmesi gerekiyor..







    SqlCommand command4 = new SqlCommand(" UPDATE PROCESSES SET reserve_date=GETDATE() WHERE book_id=" + row.Cells[1].Text.ToString() +"AND order_date IS NOT NULL AND reserve_date IS NULL AND borrow_date IS NULL AND return_date IS NULL AND delete_carry=0 ", connect);







  • tablolarin yapisini hic gostermemissin. ilk rezervi kimin yaptigini biliyorsan update in icinde where de o kisi kontrolunu yaptirabilirsin.
  • quote:

    Orjinalden alıntı: cs7

    tablolarin yapisini hic gostermemissin. ilk rezervi kimin yaptigini biliyorsan update in icinde where de o kisi kontrolunu yaptirabilirsin.


    Tablo yapisi

    İlk kimiz rezerve yaptığını bilmiyorum zaten bilinse iş hemen çözülür commandda bunu algılaması lazım..

     Sorguda sadece ilk sonucu değiştirmek
  • İlgin için sağol arkadaşım sorunu çözdüm..
    SqlCommand command4 = new SqlCommand(" UPDATE PROCESSES SET reserve_date=GETDATE() WHERE book_id=" + row.Cells[1].Text.ToString() +
    "AND order_date IS NOT NULL AND reserve_date IS NULL AND borrow_date IS NULL AND return_date IS NULL AND delete_carry=0 AND person_id IN(SELECT TOP 1 person_id FROM PROCESSES WHERE book_id=" + row.Cells[1].Text.ToString() +
    "AND order_date IS NOT NULL AND reserve_date IS NULL AND borrow_date IS NULL AND return_date IS NULL AND delete_carry=0)", connect);


    biras uzun oldu ama tam istediğimi verdi
  • kastettigim senin where in icine yazdigin person_id IN ... idi. yalniz top 1 ile bir person getirirsin de bunun ilk reserve olup olmadigini garanti edemezsin. bir order by eklemen gerek gibi icteki select person a.
  • quote:

    Orjinalden alıntı: cs7

    kastettigim senin where in icine yazdigin person_id IN ... idi. yalniz top 1 ile bir person getirirsin de bunun ilk reserve olup olmadigini garanti edemezsin. bir order by eklemen gerek gibi icteki select person a.


    evet haklısın onuda ekleyeyim.. Aslında kayıtlar sıralı olarak gerçekleşiyo ama genede garantiye almak açısından iyi olur..



    < Bu mesaj bu kişi tarafından değiştirildi *-*UZMAN*-* -- 9 Ağustos 2008; 21:11:44 >
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.