2016-10-10 2 views
0

Microsoft Azureストレージのすべてのテーブルのリストを取得しようとしています。私は正常に接続し、テーブルの名前を知っている場合は、テーブルから行を読み取ることができます。次の定義とテーブルのリストを取得する方法があります:Microsoft Azureのすべてのテーブルのリストを取得する

public virtual IEnumerable<CloudTable> ListTables(string prefix = null, TableRequestOptions requestOptions = null, OperationContext operationContext = null); 

は今、私はすべてのパラメータを渡さない場合は、私の質問があり、私はすべてのテーブルのリストを取得することを期待します。接頭辞に "*"を渡してみましたが、これも私に結果をもたらさないようです。ここで

は私のコードです:

CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connectionString); 
CloudTableClient tableClient = storageAccount.CreateCloudTableClient(); 
IEnumerable<CloudTable> tableList = tableClient.ListTables("*");//returns empty list 
IEnumerable<CloudTable> tableList = tableClient.ListTables();//returns empty list 

答えて

1

はあなたのために、このコードの仕事をしていますか?接続文字列を一時的にハードコーディングすることができます。

using System; 
using System.Collections.Generic; 
using System.Linq; 
using Microsoft.WindowsAzure.StorageClient; 
using Microsoft.WindowsAzure; 
namespace ConsoleClient 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 

      string connectionString = "DefaultEndpointsProtocol=https;AccountName=MyAccountName;AccountKey=MyAccountKey==="; 
      var TablesName = GetTablesNameForAzureSubscription(connectionString); 
      foreach (var r in TablesName) 
      { 
       Console.WriteLine(r.ToString()); 
      } 
      Console.ReadKey(true); 
     } 
     private static List<string> GetTablesNameForAzureSubscription(string connectionString) 
     {    
      CloudStorageAccount account =CloudStorageAccount 
             .Parse(connectionString); 
      CloudTableClient tableClient = new CloudTableClient 
             (account.TableEndpoint.ToString(), 
             account.Credentials); 
      var result = tableClient.ListTables(); 
      return result.ToList(); 
     } 
+0

あなたのコードは正常に見えるが、私の投稿の答えを参照してください。とにかくありがとう – Maxqueue

0

私のコードは確かに動作します。クライアントはテーブルがあると私に知らせましたが、明らかに間違っていました。

注:接頭辞として「*」を使用しても結果は得られませんが、パラメータを渡さないとテーブルの一覧が表示されません。

0

Azureストレージアカウント内のすべてのテーブルを表示するコード:

public static void list_table() 
{ 
    CloudStorageAccount storageAccount = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("xxxxxxxxxxxxxxxxxxxxxx_AzureStorageConnectionString")); 
    CloudTableClient tableClient = new CloudTableClient(storageAccount.TableEndpoint, storageAccount.Credentials); 
    var result = tableClient.ListTables();   
    if(result != null) 
    { 
     foreach (var item in result) 
     { 
      Console.WriteLine(item.Name); 
     } 
    } 
} 

出力は次のようになります。

.....THE OUTPUT FOR THE ABOVE CODE IS.....

-1

コード:

public static void list_queue() 
     { 
      CloudStorageAccount storageAccount = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("xxxxxxxxxxxxxxxxxxxxxx_AzureStorageConnectionString")); 
      CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient(); 

      var result = queueClient.ListQueues(); 
      if (result != null) 
      { 
       foreach (var item in result) 
       { 
        Console.WriteLine(item.Name); 
       } 
      } 
     } 

出力:

enter image description here

+1

最初の回答を投稿するのではなく、編集してください。 (大文字を書き込まないでください;これは叫んでいると思われます)。 – Pharaoh

関連する問題