我正在尝试获取Microsoft Azure存储上所有表的列表。如果我知道表的名称,我能够成功连接并从表中读取行。有一种方法可以获得具有以下定义的表列表:
public virtual IEnumerable<CloudTable> ListTables(string prefix = null, TableRequestOptions requestOptions = null, OperationContext operationContext = null);
现在我的问题是,如果我没有传递任何参数,我希望得到所有表的列表。我试过传递&#34; *&#34;对于前缀也没有任何结果。
这是我的代码:
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
答案 0 :(得分:2)
此代码是否适合您?您可能希望暂时对连接字符串进行硬编码。
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();
}
答案 1 :(得分:2)
显示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);
}
}
}
输出将是:
答案 2 :(得分:0)
事实证明我的代码确实有效。客户告诉我有桌子,但显然他们错了。
注意:使用“*”作为前缀不会产生结果,但不传递任何参数将给出表格列表。
答案 3 :(得分:-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);
}
}
}
<强>输出:强>