2016-04-28 13 views
0

これを実行する最善の方法について何時間も検索しています。コンソールアプリケーションを使用して共有リストからデータを抽出する

私はリストを自然に持つsharepoint 2013サイトを持っています。

このリストに接続して情報をデータテーブルに抽出します。それは難しいはずはありません...

私は試しましたので、 私は当初、最終的な宛先の前に情報をプルして変換するためにssisを計画していました。 シェアポイントリストアダプターのために、これは明らかに小さなアダプターがあります... SSIS 13では動作しません!もちろんそれは私が使うことができる唯一のバージョンではありません。

それでは、私はlists.asmxと呼ばれるWebサービスを読んで、呼び出されたときにxmlバージョンのテーブルを返すべきです。

私はWebサービスに接続し、すべてのチュートリアルにある使用する必要がある方法(GETLISTITEMS)はSP2013にはありません!!!

誰かが私に例を与えるか

SSIS 13 SPサイトに接続して、テーブルの情報を抽出する方法Bを介してデータを引っ張っていずれかの接続とクエリの例を示し、ウェブサイトに私をリンクしてくださいすることができます。

私の正気を返却してくださいは、私はあなたがVisual StudioでC#のコンソールアプリケーションを意味すると仮定し、コンソールアプリとしてあなた

答えて

0

ありがとうございましたか! SharePoint 2013 CSOM - ClientSideオブジェクトモデル用のGoogleだけ。あなたはその情報のトンを見つけることができます。 これは、あなたのSP環境(および読んだリストと同様)を「距離」/クライアント側から管理することを可能にします。あなたが感謝Verthosaが正しい方向に私を指しているため

https://msdn.microsoft.com/en-us/library/office/fp179912.aspx

1

管理API DLLを必要とする、CSOMは間違いなく、それが通って、実験読んでいくつかを取っていても進むべき道でした。

リストをプルするのに素敵な簡単なクラスを探している人のために以下は、簡単な呼び出しのためにリストデータをデータテーブルに変換するクラスです。

追加する必要があります。Microsoft.SharePoint.Clientを使用する - そこにない場合はSP2010/2013クライアントSDKをダウンロードしてください)、Microsoft.SharePoint.Client + Microsoft.SharePoint.Runtimeというアセンブリ拡張を参照に含めます。

コール方法

DataTable dt = new DataTable(); 
dt = ClassName.GetList("http://SharepointSite", "Name of List Table"); 

クラスメソッド

public static DataTable GetList(string site, string listname) 
    { 
     ClientContext ctx = new ClientContext(site); 

     List lst = ctx.Web.Lists.GetByTitle(listname); 

     CamlQuery cq = CamlQuery.CreateAllItemsQuery(); 

     ListItemCollection lic = lst.GetItems(cq); 

     ctx.Load(lic); 

     ctx.ExecuteQuery(); 
     DataTable dt = new DataTable(); 

     foreach (var field in lic[0].FieldValues.Keys) 
     { 
      dt.Columns.Add(field); 
     } 

     foreach (var item in lic) 
     { 
      DataRow dr = dt.NewRow(); 

      foreach (var obj in item.FieldValues) 
      { 
       if (obj.Value != null) 
       { 
        string type = obj.Value.GetType().FullName; 

        if (type == "Microsoft.SharePoint.Client.FieldLookupValue") 
        { 
         dr[obj.Key] = ((FieldLookupValue)obj.Value).LookupValue; 
        } 
        else if (type == "Microsoft.SharePoint.Client.FieldUserValue") 
        { 
         dr[obj.Key] = ((FieldUserValue)obj.Value).LookupValue; 
        } 
        else 
        { 
         dr[obj.Key] = obj.Value; 
        } 
       } 
       else 
       { 
        dr[obj.Key] = null; 
       } 
      } 

      dt.Rows.Add(dr); 
     } 

     return dt; 
    } 
を取得し、変換
関連する問題