私はこのCAMLを持っています:
query.Query = @"<Where><Eq><FieldRef Name='MessageID' /><Value Type='Text'></Value></Eq></Where>";
これにより、MessageID = string.empty()の値がチェックされます
チェックしたいのはnullです...空の文字列ではありません...
これはCAMLで可能ですか?
CAMLにはIsNull演算子があるため、クエリは次のようになります。
query.Query = @"<Where><IsNull><FieldRef Name='MessageID' /></IsNull></Where>"
String.IsNullOrEmpty(Description)
と同等のものが必要でした。これで終わりました:
<And>
<IsNotNull>
<FieldRef Name='Description' />
</IsNotNull>
<Neq>
<FieldRef Name='Description' />
<Value Type='Text'></Value>
</Neq>
</And>
コリンに同意し、より頻繁に使用される状態は次のとおりです。
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>
注:詳細については、次のWebサイトをご覧ください http://msdn.Microsoft.com/en-us/library/ms467521.aspx =完全なCamlクエリスキーマがあります。
これがあなたを助けることを願っています〜
IsNotNull要素(クエリ) を使用してNullを確認できます。
クエリ内で使用され、空でない(Null)アイテムを返します。
例:
<IsNotNull>
<FieldRef Name = "Field_Name"/>
<Value Type = "Field_Type"/>
<XML />
</IsNotNull>
IsNull要素(クエリ) を使用してNullを確認できます。
クエリ内で使用され、空(Null)のアイテムを返します。
例:
<IsNull>
<FieldRef Name = "Field_Name"/>
<Value Type = "Field_Type"/>
<XML />
</IsNull>