摘要:如果把SharePoint的列表当作数据库表,而把SharePoint为这些列表所封装的好的API当作已经写好的DataAccess API,在这个基础上搭建一个完全基于SharePoint的业务系统,同时在最终UI展现上再集成其他应用系统的业务展现,达到充分利用SharePoint现有功能,又体现其门户整合的理念,这种用法是否大家都在用呢?我是一直在做这方面的尝试,但是SPS2003确实有着诸多限制,比如无法跨表查询、Item级别权限和事件缺失、无法完成复杂甚至一般的工作流等,都不能不说完全基于SPS2003搭建业务和整合应用有点心有余而力不足,幸好这些在2007中都得到解决。当然,2007姑且再说,先就2003下的数据操作做个罗列吧。
1、数据表的创建
就是列表栏的创建。根据具体需求创建相应的列表栏,如日期、文本、数字等。有些可以显示公开,有些栏可以创建出来作为内部处理用。
2、数据集获取和绑定,查询就用SPQuery也挺方便public static DataSet GetListDataSet(string listName, params string[] customFields)
...{
SPWeb web = SPControl.GetContextWeb(HttpContext.Current);
SPList list = web.Lists[listName];
DataSet ds = new DataSet();
ds.Merge(list.Items.GetDataTable());
foreach(string text in customFields)
...{
string internalName = list.Fields[text].InternalName;
ds.Tables[0].Columns[internalName].ColumnName = text;
}
ds.Tables[0].AcceptChanges();
ds.AcceptChanges();
return ds;
}
用法: