本文介绍如何通过 .NET SDK 更新表格存储数据表中的单行数据,您可以更新属性列的值、添加属性列、删除属性列的某个版本或整个属性列。
前提条件
方法说明
public UpdateRowResponse UpdateRow(UpdateRowRequest request)异步方法:
public Task<UpdateRowResponse> UpdateRowAsync(UpdateRowRequest request)示例代码
以下示例代码用于修改 test_table 表中主键值为 row1 的行数据,将属性列 col1 的值修改为 changed_val1。
try
{
// 构造主键
PrimaryKey primaryKey = new PrimaryKey
{
{ "id", new ColumnValue("row1") }
};
// 更新的属性列
UpdateOfAttribute updateOfAttribute = new UpdateOfAttribute();
updateOfAttribute.AddAttributeColumnToPut("col1", new ColumnValue("changed_val1"));
// 更新行数据时必须指定更新条件 (RowExistenceExpectation.IGNORE,表示不做行存在性判断)
Condition condition = new Condition(RowExistenceExpectation.IGNORE);
// 调用 UpdateRow 方法更新行数据
UpdateRowRequest updateRowRequest = new UpdateRowRequest("test_table", condition, primaryKey, updateOfAttribute);
UpdateRowResponse updateRowResponse = client.UpdateRow(updateRowRequest);
Console.WriteLine($"RequestId: {updateRowResponse.RequestID}");
Console.WriteLine($"Read CU Cost: {updateRowResponse.ConsumedCapacityUnit.Read}");
Console.WriteLine($"Write CU Cost: {updateRowResponse.ConsumedCapacityUnit.Write}");
}
catch (Exception ex)
{
Console.WriteLine($"Update row failed, exception: {ex.Message}");
}您也可以参照示例代码进行以下行数据操作。
添加一个属性列。
updateOfAttribute.AddAttributeColumnToPut("col2", new ColumnValue("val2"));删除整个属性列数据。
updateOfAttribute.AddAttributeColumnToDelete("col2");