【问题标题】:Can we connect Sharepoint to SQL Server 6.5?我们可以将 Sharepoint 连接到 SQL Server 6.5 吗?
【发布时间】:2014-02-24 18:14:25
【问题描述】:

无法导入应用程序定义文件!!错误:名称为“XYZ”且类型为“LobSystemInstance”的元数据对象具有名称为“DatabaseAccessProvider”的属性,该属性的值或类型无效。在行:“10”和位置:“10”或之前遇到错误。

ADF 中的第 10 行:

 <"Property Name="DatabaseAccessProvider" Type="System.String">SqlOledb<"/Property>

请告诉我如何在 Sharepoint 中显示来自 SQL Server 6.5 的数据?

【问题讨论】:

  • 6.5!?真的吗?我的哀悼。
  • SharePoint 只是一个 ASP.NET 应用程序。如果您可以在 ASP.NET 中执行此操作,那么您可以在 SharePoint 中执行此操作。
  • 谁能帮我解决这个问题?

标签: sql-server sharepoint


【解决方案1】:

节点的值无效。您需要使用 SqlServerOleDb。查看此页面了解更多信息:

http://msdn.microsoft.com/en-us/library/ms550725(office.12).aspx

【讨论】:

  • 如果我使用 OleDb,则 ADF 已成功导入,但当我尝试使用业务数据列表 Web 部件时,它给我一个错误:“从 XYZinstance 检索数据时发生错误”!!即使我尝试使用应用程序定义设计器,它正在连接到数据库但无法创建 lobsystem 实例..在我拖放表并单击确定后,它弹出 uo 这个烂摊子:“设计器突然停止工作!!”
【解决方案2】:

我刚刚开始执行类似的任务(所以我找到了您未回答的问题)。我正在尝试将 Sharepoint 中的文档库复制到 SQL 数据库。它不是直接从 SQL 打开您的文件,而是使用一些 c# 代码来设置一个打开共享点的作业,这可能是您想要的。

目前我发现了两种方法: 一种是将您的数据从共享点复制到 Access 中的链接列表,然后使用 OLEDB 方法打开它。 在这里找到:C# Sync MS Access database to sql server

    private static void BulkCopyAccessToSQLServer
            (CommandType commandType, string sql, string destinationTable)
    {
        string connectionString = @"C:\Migration\Sharepoint Access SQL Batch Job\Database11.accdb";
        using (DataTable dt = new DataTable())
        {

            string ConnStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Migration\Sharepoint Access SQL Batch Job\Database11.accdb;Jet OLEDB:Database Password=password";
            //using (OleDbConnection conn = new OleDbConnection(Settings.Default.CurriculumConnectionString))
            using (OleDbConnection conn = new OleDbConnection(ConnStr))
            using (OleDbCommand cmd = new OleDbCommand(sql, conn))
            using (OleDbDataAdapter adapter = new OleDbDataAdapter(cmd))
            {
                cmd.CommandType = commandType;
                cmd.Connection.Open();
                adapter.SelectCommand.CommandTimeout = 240;
                adapter.Fill(dt);
                adapter.Dispose();
            }



            using (SqlConnection conn2 = new SqlConnection(Settings.Default.qlsdat_extensionsConnectionString))

            using (SqlConnection conn2 = new SqlConnection(connectionString))
            {
                conn2.Open();
                using (SqlBulkCopy copy = new SqlBulkCopy(conn2))
                {
                    copy.DestinationTableName = destinationTable;
                    copy.BatchSize = 1000;
                    copy.BulkCopyTimeout = 240;
                    copy.WriteToServer(dt);
                    copy.NotifyAfter = 1000;
                }
            }
        }
    }

另一种是使用 Microsoft.Sharepoint 库并直接从 c# 打开您的共享点,然后将其复制到您的 SQL 中。 在这里找到:http://www.dotnetspark.com/kb/3573-fetching-lists-from-sharepoint-2010-site.aspx

    using (SharePointclientObj.ClientContext ctx = new SharePointclientObj.ClientContext(clientContext))
        {                
            //Get the site
            SharePointclientObj.Web site = ctx.Web;
            ctx.Load(site);
            //Get Lists
            ctx.Load(site.Lists);
            //Query
            ctx.ExecuteQuery();
            //Fill List
            foreach (SharePointclientObj.List list in site.Lists)
            {
                Console.WriteLine(list.Title);                   
            }

        }

【讨论】:

  • 噢!我刚刚意识到你的问题是另一种方式。如果这有用,我会留下它,如果没有,那么我可以删除它。我认为您可以使用相同的库以另一种方式使用,但要切换读取和写入。也许通过编写您的 SQL 来访问并使用访问链接到您的共享点。我没有做这个方向,所以我手边没有任何代码,但这是对一种方法的描述。在您这样做之前,请尝试使用内置的导入工具将 SQL 直接加载到 sharepoint 中,或者将其加载到 access 中,然后查看是否可以访问 sharepoint。
猜你喜欢
  • 1970-01-01
  • 2019-02-26
  • 2021-02-27
  • 2023-03-27
  • 2012-12-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多