Azure移动服务 - 插入数据 - 提供的数据类型无效
问题描述:
我有一个确定的时间,但我无法确定问题源于何处。Azure移动服务 - 插入数据 - 提供的数据类型无效
我创建了一个新的Azure移动服务,并试图将一块数据插入名为Product的表中。
Product item = new Product();
item.Name = "Test";
Toast.makeText(MainMenu.this, "" + item.Name, toast.LENGTH_SHORT).show();
mClient.getTable(Product.class).insert(item, new TableOperationCallback<Product>() {
public void onCompleted(Product entity, Exception exception, ServiceFilterResponse response) {
if (exception == null) {
Toast.makeText(MainMenu.this, "Success!", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(MainMenu.this, "" + exception + "", Toast.LENGTH_SHORT).show();
}
}
});
现在我将item =“TEST”设置为一个字符串?
public class Product {
public String ID;
public String Name;
}
所以我的移动业务表类设置为接受字符串和数据库是要求
USE [SQLDB]
GO
/****** Object: Table [dbo].[Product] Script Date: 21/08/2016 11:12:18 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Product](
[id] [int] IDENTITY(1,1) NOT NULL,
[Name] [varchar](100) NULL,
[thetimestamp] [datetime] NULL DEFAULT (getdate()),
[deleted] [bit] NULL DEFAULT ((0)),
[createdAt] [datetimeoffset](7) NOT NULL DEFAULT (CONVERT([datetimeoffset](7),sysutcdatetime(),(0))),
[updatedAt] [datetimeoffset](7) NOT NULL DEFAULT (CONVERT([datetimeoffset](7),sysutcdatetime(),(0))),
PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
)
GO
SET ANSI_PADDING OFF
GO
现在我完全糊涂了,为什么我的应用程序给我下面的错误:
com.microsoft.windowsazure.mobileservices.MobileServiceException: {"error":"Invalid data type provided"}
编辑:
我还在尽管recreatin这个问题g所有通过Azure门户的表以及所有生成的列,我也尝试了VARCHAR(由Azure自动生成)和INT主键。
答
尝试改变你的表中的数据类型 “ID”:
[ID] [VARCHAR]
,因为在你的类 “产品” 要定义为字符串
+0
我也尝试插入作为一个整数,并给出了相同的错误。我会试一试,但我知道让移动服务创建表给出一个VARCHAR主键但使用整数更适合我,能够引用一个产品编号而不是一个巨大的字符串。我一定会尝试一下,看它是否会消除我的错误。 –
是否使用Azure的经典Azure门户中的移动服务,还是新的Azure移动应用程序?旧的是不赞成的。 –
Hiya,我在新门户中使用它。这是一个3天前开始的新项目,我从头开始设置。我可能有一些日期代码,在那里我已经从之前的项目中拉出来了吗? –
有几个可能的原因 - 创建脚本缺少版本[timestamp]列 - 如果使用整数主键,则必须在表配置中指定此值 - “timetimeamp”列应为datetimeoffset(7)type - 此表是由移动应用程序后端创建的吗?它可能缺少必需的默认值和触发器 –