C# 获取microsoft azure表存储中所有表的列表

C# 获取microsoft azure表存储中所有表的列表,c#,azure,azure-table-storage,C#,Azure,Azure Table Storage,我正在尝试获取Microsoft Azure存储上所有表的列表。如果我知道表的名称,我就能够成功连接并从表中读取行。有一种方法可以获取具有以下定义的表列表: public virtual IEnumerable<CloudTable> ListTables(string prefix = null, TableRequestOptions requestOptions = null, OperationContext operationContext = null); 公共虚拟IE

我正在尝试获取Microsoft Azure存储上所有表的列表。如果我知道表的名称,我就能够成功连接并从表中读取行。有一种方法可以获取具有以下定义的表列表:

public virtual IEnumerable<CloudTable> ListTables(string prefix = null, TableRequestOptions requestOptions = null, OperationContext operationContext = null);
公共虚拟IEnumerable ListTables(字符串前缀=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
CloudStorageAccount-storageAccount=CloudStorageAccount.Parse(connectionString);
CloudTableClient tableClient=storageAccount.CreateCloudTableClient();
IEnumerable tableList=tableClient.ListTables(“*”)//返回空列表
IEnumerable tableList=tableClient.ListTables()//返回空列表

此代码是否适用于您?您可能需要临时硬编码连接字符串

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(); 
        } 
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用Microsoft.WindowsAzure.StorageClient;
使用Microsoft.WindowsAzure;
名称空间控制台客户端
{
班级计划
{
静态void Main(字符串[]参数)
{
字符串连接string=“DefaultEndpointsProtocol=https;AccountName=MyAccountName;AccountKey=MyAccountKey==”;
var TablesName=GetTablesNameForAzureSubscription(connectionString);
foreach(表名中的var r)
{
Console.WriteLine(r.ToString());
} 
Console.ReadKey(true);
}
私有静态列表GetTablesNameForAzureSubscription(字符串连接字符串)
{            
CloudStorageAccount=CloudStorageAccount
.Parse(连接字符串);
CloudTableClient tableClient=新的CloudTableClient
(account.TableEndpoint.ToString(),
账户(证书);
var result=tableClient.ListTables();
返回result.ToList();
} 

所以我的代码确实有效。客户告诉我有一些表,但显然它们错了


注意:使用“*”作为前缀不会产生结果,但不传递任何参数将给出表列表。

显示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);
        } 
    }
}
输出将是:

代码:

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);
                }
            }
        }
输出:

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);
                }
            }
        }

您的代码看起来不错,但可以看到我发布的答案。谢谢您。请编辑您的第一个答案,而不是再次发布。(请不要写全大写;这被视为大喊大叫)。