3

私はSharePoint2007のいくつかの異なる顧客リストからデータを編集することを探しています

ホストされているSharePointサイトなので、マシンのバックエンドにアクセスできません。

c#を使用してSharePointサイトにアクセスするためのサンプルコードはありますか?

これまでの私のコードは次のとおりです(Sharepointサイトに接続できません''というエラーが表示されます。後でもう一度やり直してください。

    DataSet dt = new DataSet();
    string query = "SELECT * FROM list";
    string site = "http://sp.markonsolutions.com/Lists/Security/";
    string list = "35E70EO4-6072-4T55-B741-4B75D5F3E397"; //security db
    string myConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;WSS;IMEX=2;RetrieveIds=Yes; DATABASE="+site+";LIST={"+list+"};";
    OleDbConnection myConnection = new OleDbConnection();
    myConnection.ConnectionString = myConnectionString;
    OleDbCommand myAccessCommand = new OleDbCommand(query,myConnection);
    OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(myAccessCommand);
    myConnection.Open();



          myDataAdapter.Fill(dt);

    //execute queries, etc
    myConnection.Close();
4

2 に答える 2

7

SharePointマシンにコードを展開できない場合は、ほとんどの場合、Webサービスを使用する必要があります。

リストWebサービスはあなたが求めているものです。

これはhttp://yousharepointsite.com/_vti_bin/Lists.asmxにあり、デフォルトで開いているはずです。サイトがFBAで構成されている場合は、lists.asmxにクエリを実行する前に、_vti_bin/Authentication.asmxを使用してログインする必要があることに注意してください。

これがあなたが必要とするすべての情報を与える記事です:

http://sharepointmagazine.net/articles/writing-caml-queries-for-retrieveing-list-items-from-a-sharepoint-list

上記の理由により、オブジェクトモデルを使用してSharePointリストをクエリする部分をスキップし、SharePointWebサービスを使用したCAMLでのリストアイテムの取得に直接進みます。

記事はかなり完成しているので、大丈夫だと思います。

あなたの編集によると、私はあなたがそのようなあなたのリモートサイトへの接続を作成することができるとは思わない。そのようなSQLでSharePointにクエリを実行することはできません。実際には、CAMLを使用する必要があります...

Webサービスへの参照を追加したら:

ListService listsClient = new ListService.Lists();
listsClient.Url = @"http://sp.markonsolutions.com/" + @"/_vti_bin/lists.asmx";
listsClient.Credentials = System.Net.CredentialCache.DefaultCredentials;
listsClient.GetListItems(...);

GetListItemsの詳細についてはこちらをご覧ください

私が言ったように、あなたはウェブサービスを使う必要があります。データベースを直接クエリするためにそのような接続を作成しようとしている場合は、行き止まりに向かっています。推奨されません。

于 2011-04-07T15:27:33.023 に答える
5

SharePoint用のado.netコネクタを使用しない限り、実行しようとしていることが可能かどうかわからない場合は、http://www.bendsoft.com/net-sharepoint-connector/を参照してください。

通常のSQLテーブルがあるかのようにSharePointリストと通信できます

いくつかのデータを挿入する例

public void SharePointConnectionExample1()
{
    using (SharePointConnection connection = new SharePointConnection(@"
                Server=mysharepointserver.com;
                Database=mysite/subsite
                User=spuser;
                Password=******;
                Authentication=Ntlm;
                TimeOut=10;
                StrictMode=True;
                RecursiveMode=RecursiveAll;
                DefaultLimit=1000;
                CacheTimeout=5"))
    {
        connection.Open();
        using (SharePointCommand command = new SharePointCommand("UPDATE `mytable` SET `mycolumn` = 'hello world'", connection))
        {
            command.ExecuteNonQuery();
        }
    }
}

または、リストデータをDataTableに選択します

string query = "SELECT * FROM list";
conn = new SharePointConnection(connectionString);
SharePointDataAdapter adapter = new SharePointDataAdapter(query, conn);

DataTable dt = new DataTable();
adapter.Fill(dt);

または、ヘルパーメソッドを使用してDataGridを埋めます

string query = "Select * from mylist.viewname";
DataGrid dataGrid = new DataGrid();
dataGrid.DataSource = Camelot.SharePointConnector.Data.Helper.ExecuteDataTable(query, connectionString);
dataGrid.DataBind();
Controls.Add(dataGrid);
于 2011-04-07T17:49:08.227 に答える