SpY*_*3HH 6 .net c# caml sharepoint-2010
我在这里检查过文章并用Google搜索直到我的指尖是蓝色的.我已阅读,阅读和阅读,似乎无法在Sharepoint2010中围绕CAML联接.
问:是否有人可以显示我怎么一个完整的例子正好 CAML加入查询比较SQL联接查询?
*For Example (SQL of Course, just something to work with)*
If I had a Database named "whatever" & it contained two tables.
We'll name these "tableA" & "tableB", respectively.
Let's say they look like this:
- tableA -
ID | Column1 | Column2 | Column3
- tableB -
ID | Column4 | Column5 | Column6
SELECT tableA.Column1, tableA.Column2, tableB.Column4
FROM tableA
INNER JOIN tableB ON tableA.ID = tableB.ID
Would give me something like:
- newTable -
Column1 | Column2 | Column4
result | result | result
result | result | result
result | result | result
Run Code Online (Sandbox Code Playgroud)
所以,我的问题是,我是否可以使用CAML联接查询字符串在Sharepoint 2010中获得相同操作的确切示例?
pod*_*ska 11
从您的某个列表中创建查询.
SPList list = SPContext.Current.Site.RootWeb.Lists["TableA"];
SPQuery query = new SPQuery();
Run Code Online (Sandbox Code Playgroud)
要进行连接,请设置query.Joins为
<Join Type="INNER" ListAlias="TableB">
<Eq>
<FieldRef Name="TableA" RefType="ID" />
<FieldRef List="TableB" Name="ID" />
</Eq>
</Join>
Run Code Online (Sandbox Code Playgroud)
并query.ProjectedFields以
<Field Name="TableBColumn4" Type="Lookup" List="TableB" ShowField="Column4">
Run Code Online (Sandbox Code Playgroud)
选择要显示的字段设置query.ViewFields为
<FieldRef Name="Column1">
<FieldRef Name="Column2">
<FieldRef Name="TableBColumn4">
Run Code Online (Sandbox Code Playgroud)
然后
SPListItemCollection result = tablea.GetItems(query);
Run Code Online (Sandbox Code Playgroud)
或类似的东西(它来自记忆!)
小智 5
我的挫折反映了你的,这里还有一些提示:
根据关系中的子表启动查询.(我无法从你的例子中看出哪个是父母,哪个是孩子.)
我同意Rob Windsor的说法,它必须基于Lookup字段,但是从我的测试中,它必须是对ListItemID类型字段的查找.在SharePoint中,这是内部ID字段.(我知道这一点,因为我查找了一个文本字段,它只是不起作用.浪费了几个小时.)我目前在Microsoft论坛上有一篇帖子,询问RefType参数是否可以是'ID以外的任何内容',所以也许留意这一点.最后,如果在投影字段中,Type参数必须始终为'lookup',那么为什么需要它?
没有CAML查询构建器(YACQB和U2U)支持连接,所以不要费心下载和尝试.
| 归档时间: |
|
| 查看次数: |
11017 次 |
| 最近记录: |