2009-08-27 20 views
21

I (Alex sayesinde lol)SharePoint: Boş bir CAML Sorgusu ile nasıl kontrol edilir?

query.Query = @"<Where><Eq><FieldRef Name='MessageID' /><Value Type='Text'></Value></Eq></Where>"; 

Bu kontroller bu Çaml varsa değeri MessageID = string.Empty() ı kontrol etmek istiyorum ne

.... null değil boş dize ...

Bu, CAML ile mümkün mü?

+6

XML bir SQL benzeri sorgulama dili tamamlayan size yardımcı olabilir: dahiyane bir vuruş ya da saf kötülük? Sen karar ver. – Juliet

+1

SQL olsaydı çalışırdı ... ama SharePoint'in başka bir korkak (kırık) yönü. SharePoint asla hayal kırıklıkları ... –

+1

Ayrıca, Microsoft belgelerini de sevmelisiniz - http://msdn.microsoft.com/en-us/library/dd588322%28office.11%29.aspx - nasıl kullanılacağını dışında her şeyi açıklar. ... –

cevap

46

CAML ısnull operatörü vardır, bu yüzden sorgu olacaktır:

query.Query = @"<Where><IsNull><FieldRef Name='MessageID' /></IsNull></Where>" 
+1

Bu tür şeyleri nerden biliyorsunuz? :) ama teşekkürler! –

+0

Lol - sadece sorun çalışmıyor :) –

+0

Nasıl çalışıyor? Bir Or cümlesi kullanmayı deneyebilir, boş VE boş değerleri kontrol edebilir misiniz? – Colin

21

String.IsNullOrEmpty(Description) bir eşdeğerini gerekli. Bu ile sona erdi:

<And> 
    <IsNotNull> 
    <FieldRef Name='Description' /> 
    </IsNotNull> 
    <Neq> 
    <FieldRef Name='Description' /> 
    <Value Type='Text'></Value> 
    </Neq> 
</And> 
+3

kopyalayıp yapıştırmadan önce IsNullOrEmpty olduğunu unutmamak;) –

7

Colin ile Anlaştı ve daha sık kullanılan koşul aşağıdaki gibi:

1. Null: 
<Where><IsNull><FieldRef Name="CustomField" /></IsNull></Where> 
2. Not Null: 
<Where><IsNotNull><FieldRef Name="CustomField" /></IsNotNull></Where> 
3. Equal: 
<Where><Eq><FieldRef Name="CustomField" /><Value Type="Text">MatchValue</Value></Eq></Where> 
4. Not Equal: 
<Where><Neq><FieldRef Name="CustomField" /><Value Type="Text">MatchValue</Value></Neq></Where> 
5. Greater Than: 
<Where><Gt><FieldRef Name="CustomField" /><Value Type="Text">1</Value></Gt></Where> 
6. Greater Than And Equal: 
<Where><Geq><FieldRef Name="CustomField" /><Value Type="Text">1</Value></Geq></Where> 
7. Lower Than: 
<Where><Lt><FieldRef Name="CustomField" /><Value Type="Text">1</Value></Lt></Where> 
8. Lower Than And Equal: 
<Where><Leq><FieldRef Name="CustomField" /><Value Type="Text">1</Value></Leq></Where> 
9 Begin With: 
<Where><BeginsWith><FieldRef Name="CustomField" /><Value Type="Text">StartString</Value></BeginsWith></Where> 
10: Contains: 
<Where><Contains><FieldRef Name="CustomField" /><Value Type="Text">ContainString</Value></Contains></Where> 

Not: Daha fazla bilgi ziyaret edin: http://msdn.microsoft.com/en-us/library/ms467521.aspx tamamen Caml Sorgu Şeması yoktur .

Umut bu ~

İlgili konular