Google maps 如何使用.NET Google.API.Fusiontables.v2(流csv)中的ReplaceRows?
目标:使用ReplaceRows()将csv文件中的新行替换为旧行,从而更新融合表 我正在使用Google.api.fusionables.v2库 我已经读了一遍又一遍,但仍然无法使我的代码正常工作 身份验证正在工作,我能够执行简单的插入而不会出现问题:Google maps 如何使用.NET Google.API.Fusiontables.v2(流csv)中的ReplaceRows?,google-maps,google-fusion-tables,google-api-dotnet-client,Google Maps,Google Fusion Tables,Google Api Dotnet Client,目标:使用ReplaceRows()将csv文件中的新行替换为旧行,从而更新融合表 我正在使用Google.api.fusionables.v2库 我已经读了一遍又一遍,但仍然无法使我的代码正常工作 身份验证正在工作,我能够执行简单的插入而不会出现问题: string sql = "INSERT INTO 11t9VLt3vzb46oGQMaS2LTSPWUyBYNcfi1shkmvag (rpu_id, NO_BAIL, 'Usage (description)', 'Use (descrip
string sql = "INSERT INTO 11t9VLt3vzb46oGQMaS2LTSPWUyBYNcfi1shkmvag (rpu_id, NO_BAIL, 'Usage (description)', 'Use (description)', 'Sup. louable m2', 'Sup. Utilisable m2', 'SumTotal Lou', 'Percent Lou', 'SumTotal Util', 'Percent Util') VALUES (9999,1111,'Test','Test En',1,2,3,4,5,6)"
Sqlresponse sqlRspnse = service.Query.Sql(sql).Execute();
我曾尝试直接从TableResource类中执行ReplaceRowsMediaUpload
和ReplaceRowsMediaUpload
从服务对象调用upload函数不会出错,但我不确定下一步该怎么做才能真正替换Fusion表中的行(服务是FusiontablesService):
我试过:
service.Table.ReplaceRows("1X7JMLFy75uq20UnU6cLrGTTDfp6lLuD1Fc3vYYjQ").Execute()
在上传之后,但这只是将融合表置于“卡住”模式
有人能提供替换行工作所需的行吗?(请解释,但不是必需的!)。您可以使用RESTAPI调用直接替换Google Fusion表中的一行,而不是编写方法来替换。以下是一个例子:
POST https://www.googleapis.com/upload/fusiontables/v2/tables/tableId/replace
请参阅文档了解更多详细信息,它也有一个测试环境工具。您应该将“text/csv”更改为“application/octet stream”。(请参见此处接受的MIME类型:)
上传的请求应该足够了
另外,尝试创建一个新表来测试它,以确保它设置正确。Google.api.Fusiontables.v2是Google为.NET应用程序创建的库。我正在寻找使用c#中现有调用的方法。值得注意的是,ReplaceRows只接受“application/octet stream”流,因此我认为this parm指的是流的实际内容。还需要指出的是,由于未知原因,Fusion表的某些副本将不接受ReplaceRows。从头开始创建一个相同的表似乎总是可行的。
POST https://www.googleapis.com/upload/fusiontables/v2/tables/tableId/replace
StreamReader str = new StreamReader(Server.MapPath("~") + @"\sample2.csv");
service.Table.ReplaceRows("1X7JMLFy75uq20UnU6cLrGTTDfp6lLuD1Fc3vYYjQ", str.BaseStream, "application/octet-stream").Upload();