【发布时间】:2020-06-03 12:27:20
【问题描述】:
我正在尝试使用 C# 中的 Google Sheets API 删除一行,但我无法让它工作。获取和更新行按预期工作。
这是我的代码(灵感来自 C# Google Sheets API - Delete Row 和 Java documentation):
var request = new Request
{
DeleteDimension = new DeleteDimensionRequest
{
Range = new DimensionRange
{
SheetId = 0,
Dimension = "ROWS",
StartIndex = 21,
EndIndex = 21
}
}
};
var deleteRequest = new BatchUpdateSpreadsheetRequest {Requests = new List<Request> {request}};
// First way: create a batch update request from scratch then execute it
var responseFirstWay = new SpreadsheetsResource.BatchUpdateRequest(MY_SHEETS_SERVICE, deleteRequest, MY_SPREADSHEET_ID).Execute();
// Second way: create a batch update request from the existing SheetsService then execute it
var responseSecondWay = MY_SHEETS_SERVICE.Spreadsheets.BatchUpdate(deleteRequest, MY_SPREADSHEET_ID).Execute();
我尝试了各种索引,但它似乎并没有改变任何东西(在上面的示例中,我放置了 21 个,所有行最多 30 行都填充了数据)。我觉得将SheetId 设置为零有点奇怪,但这是我在访问 Google 表格时使用的gid 参数。
无论我如何创建BatchUpdateRequest,执行后响应都是空的。
【问题讨论】:
-
您使用的是什么类型的数据库?答案可能是由于数据库。例如,SQL Server 不会按顺序存储数据。它是一个多用户线程数据库,因此每次您进行查询时,数据都可以以随机顺序返回。因此,要始终获得相同的订单,您需要使用 OrderBy。然后,如果您需要删除,您可以使用 TOP(或 Bottom)仅删除一个结果。
-
@jdweng ?它是 Google Sheets API,而不是数据库
-
请注意。 Google 表格是前端应用程序,不确定它使用的是什么后端数据库。以下网页只说 SQL 数据库:cloud.google.com/blog/products/application-development/…
标签: c# google-sheets google-sheets-api