SORU
26 HAZİRAN 2013, ÇARŞAMBA


Dinamik olarak kendi başına 1=1 kullanarak daha bir SQL WHERE yan inşa etmek için daha iyi bir yolu var mı?

C SQL Bazı sorgu yapıyorum#. Bazı koşullar kodda değişkenler olarak depolanan bağlı olarak farklı olacaktır.

string Query="SELECT * FROM Table1 WHERE 1=1 ";
if (condition1) 
    Query  = "AND Col1=0 ";
if (condition2) 
    Query  = "AND Col2=1 ";
if (condition3) 
    Query  = "AND Col3=2 ";

Çalışıyor ama 1=1 test zarif görünmüyor. Eğer bunu kullanmadım bile, unutma ve her zaman kontrol etmek gerekir "nerede" sözcüğü zaten sorgu için eklendi.

Daha iyi bir çözüm var mı?

CEVAP
26 HAZİRAN 2013, ÇARŞAMBA


Liste: koşullar kaydedin

List<string> conditions = new List<string>();

if (condition1) conditions.Add("Col1=0");
//...
if (conditions.Any())
    Query  = " WHERE "   string.Join(" AND ", conditions.ToArray());

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • My name is Festis and I'm free

    My name is F

    2 EKİM 2011
  • Professor Messer

    Professor Me

    27 NİSAN 2007
  • TurkishRoyal

    TurkishRoyal

    16 Ocak 2007