C# 获取microsoft azure表存储中所有表的列表
我正在尝试获取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
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);
}
}
}
您的代码看起来不错,但可以看到我发布的答案。谢谢您。请编辑您的第一个答案,而不是再次发布。(请不要写全大写;这被视为大喊大叫)。