Это случилось со мной.
По-видимому, это связано с тем, что у Java нет разрешения на создание разделов реестра.
Обновление:
Для сообщения об ошибке в предыдущем коде (а не обновления):
{Microsoft.WindowsAzure.Storage.StorageException:
ErrorCode "InvalidInput"
Element 0 in the batch returned an unexpected response code.
StatusMessage:0:Bad Request - Error in query syntax
Причина в том, что partkey и rowkey в Хранилище таблиц не принимает такие символы, как "/". И когда вы используете DateTime.Now.ToString (), которая содержит символы "/", в качестве суффикса partkey и rowkey, тогда возникнет ошибка. Пожалуйста, отформатируйте дату и время и удалите «/», вы можете использовать DateTime.Now.ToString("o")
в своем коде (или другом правильном формате).
Для обновленного кода:
Ошибка в том, что TableOperation class
не имеет конструктора (без параметров или без параметров). Вы можете перейти к классу TableOperation и взглянуть на его использование.
В вашем случае вы должны использовать его статический Insert method
как var op = TableOperation.Insert(entry)
вместо var op = new TableOperation(entry,TableOperationType.Insert)
.
И еще одна вещь, которую вам нужно знать: partkey и rowkey в хранилище таблиц не принимают такие символы, как «/», поэтому, когда вы используете datetime.now
для суффикса partkey и rowkey, вы должны использовать var s = DateTime.Now.ToString("o")
. Или это приведет к ошибке.
Пример кода работает для меня нормально:
public void CreateTableIfMissing()
{
var info = new StorageInfo(); // initialized with tablename and connectionstring
var storageAccount = CloudStorageAccount.Parse(info.ConnectionString);
var tableClient = storageAccount.CreateCloudTableClient();
var table = tableClient.GetTableReference(info.TableName);
try
{
table.CreateIfNotExists();
var s = DateTime.Now.ToString("o");
var entry = new TableEntity("partkey" + s, "rowkey" + s);
var op = TableOperation.Insert(entry);
table.Execute(op);
}
catch (Exception e)
{
Console.WriteLine(e);
throw;
}
}
Дополнительные примеры кода о хранении таблиц можно найти в этой статье .