我目前正在使用後端的XamarinForms和Azure移動應用程序構建跨平臺的移動應用程序,並遇到InsertAsync函數的問題。每當我調用它,它成功地將數據插入到我的表中,但立即拋出一個InvalidOperation異常,並顯示消息「Error conversion data type nvarchar to numeric」。任何想法爲什麼它拋出這個異常/任何可能的修復?針對XamarinForms的Azure移動應用程序服務插入同步錯誤
public class Bet
{
[PrimaryKey]
[JsonProperty(PropertyName = "Id")]
public string Id { get; set; }
[JsonProperty(PropertyName = "Name")]
public string Name { get; set; }
[JsonProperty(PropertyName = "endDate")]
public int endDate { get; set; }
[JsonProperty(PropertyName = "Description")]
public string Description { get; set; }
[JsonProperty(PropertyName = "Payout1")]
public string Payout1 { get; set; }
[Version]
[JsonProperty(PropertyName ="version")]
public byte[] version { get; set; }
[JsonProperty(PropertyName = "createdAt")]
public DateTime? createdAt { get; set; }
[JsonProperty(PropertyName = "updatedAt")]
public DateTime? updatedAt { get; set; }
違規代碼:
public async void addBet(Bet myBet, List<UserBet> myUserBets)
{
IMobileServiceTable<Bet> betTable = client.GetTable<Bet>();
myBet.ID = null;
await betTable.InsertAsync(myBet);
}
我的表:
名字類型指數
我的客戶端模式(服務器端表匹配)
id字符串true
名稱串假
結束日期的假
描述字符串假
Payout1串假
版本版本虛假
createdAt日期假
updatedAt日期假
刪除布爾值false
它看起來像一個類型不匹配。你確定你正確地匹配類型嗎?我的猜測是支出或ID不正確,不瞭解您的數據庫架構。 –
添加了數據庫模式,有什麼想法? – Daniel
1.我從來沒有見過「數字」類型,似乎無法找到任何文檔(在SQL中) - 所以我認爲你的意思是「數字」。 2.我希望標有「結束日期」的列包含日期(或日期時間)類型。 3.您的大小寫不一致,並且取決於您的服務器設置,它可能會導致問題。 4.支付是一個字符串? --------- 這就是說,你的錯誤是一種類型不匹配;某處某個字符串(或者我們認爲看起來像一個字符串的東西 - nvarchar)正在轉換爲一個數字,並導致問題。我會先看第4條。 –