2016-08-21 19 views
1

我有一個確定的時間,但我無法確定問題源於何處。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主鍵。

+0

是否使用Azure的經典Azure門戶中的移動服務,還是新的Azure移動應用程序?舊的是不贊成的。 –

+0

Hiya,我在新門戶中使用它。這是一個3天前開始的新項目,我從頭開始設置。我可能有一些日期代碼,在那裏我已經從之前的項目中拉出來了嗎? –

+0

有幾個可能的原因 - 創建腳本缺少版本[timestamp]列 - 如果使用整數主鍵,則必須在表配置中指定此值 - 「timetimeamp」列應爲datetimeoffset(7)type - 此表是由移動應用程序後端創建的嗎?它可能缺少必需的默認值和觸發器 –

回答

0

嘗試改變你的表中的數據類型 「ID」:

[ID] [VARCHAR]

,因爲在你的類 「產品」 要定義爲字符串

+0

我也嘗試插入作爲一個整數,並給出了相同的錯誤。我會試一試,但我知道讓移動服務創建表給出一個VARCHAR主鍵但使用整數更適合我,能夠引用一個產品編號而不是一個巨大的字符串。我一定會嘗試一下,看它是否會消除我的錯誤。 –

相關問題