我正在努力将大量文档从旧的文档管理系统迁移到SharePoint(MOSS 2007)。原始系统将文档作为二进制数据存储在SQL Server数据库的图像字段中。
我的想法是以编程方式创建多个文档库来对这些文档进行分组。然后,我计划将二进制数据读取到文件流,然后使用该流将文件上载到SharePoint。
有没有人做过类似的事情?有没有比我正在做的更好的方法?此外,如果任何人有任何从二进制数据库字段读取和写入SharePoint文档库的示例,我将不胜感激。谢谢。
答案 0 :(得分:4)
您可以从字节数组中以编程方式轻松创建文档。 这里有一些你可以构建的代码片段。
// If you have very large document, you might consider export the BLOBs to disk instead of in memory
string connstr = @”Data Source=.;Initial Catalog=AdventureWorks;Persist Security Info=True;User ID=sa;Password=sa”;
SqlConnection conn = new SqlConnection(connstr);
conn.Open();
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = new SqlCommand(“SELECT * FROM [dbo].[ImageStore]“, conn);
DataSet ds= new DataSet();
da.Fill(ds);
byte[] blob = (byte[])ds.Tables[0].Rows[0]["imageContent"];
using (SPSite destinationSite = new SPSite("http://YourSite"))
{
using (SPWeb = destinationSite.OpenWeb("http://YourSite"))
{
SPList destinationDocuments = destinationWeb.Lists["Documents"];
string fileName = "mydoc.jpg";
string relativeDestinationUrl = destinationDocuments.RootFolder.Url + "/";
stringfileName += sourceItem.File.Name;
relativeDestinationUrl += fileName;
SPFile destinationFile = ((SPDocumentLibrary)destinationDocuments).RootFolder.Files.Add(relativeDestinationUrl, blob, true);
SPListItem item = destinationFile.Item;
item.UpdateOverwriteVersion();
}
}