Ich erstelle derzeit eine plattformübergreifende mobile App mit XamarinForms und einer Azure Mobile App im Back-End, und ich stoße auf ein Problem mit der InsertAsync-Funktion. Wenn ich es anrufe, fügt es die Daten erfolgreich in meine Tabelle ein, löst aber sofort eine InvalidOperation-Ausnahme mit der Meldung "Fehler beim Konvertieren des Datentyps nvarchar in numerisch" aus. Irgendeine Idee, warum es diese Ausnahme wirft/irgendwelche möglichen Korrekturen?Azure Mobile App-Dienst InsertAsync-Fehler für XamarinForms
Modell Meine Client-Seite (entspricht der Serverseite Tabelle):
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; }
der säumige Code:
public async void addBet(Bet myBet, List<UserBet> myUserBets)
{
IMobileServiceTable<Bet> betTable = client.GetTable<Bet>();
myBet.ID = null;
await betTable.InsertAsync(myBet);
}
Meine Tabelle:
Name Typ IS Index
ID Zeichenfolge wahr
Name String falsch
endDate Anzahl falsch
Beschreibung String falsch
Payout1 String falsch
Version Version falsch
createdAt Datum falsch
updatedAt Datum falsch
gelöscht Boolean false
Es sieht aus wie eine Typenkonflikt. Sind Sie sicher, dass Sie die richtigen Typen gefunden haben? Meine Vermutungen sind Auszahlung oder ID, die falsch sind und keine Ahnung von Ihrem DB-Schema haben. –
Hinzugefügt das DB-Schema, irgendwelche Ideen? – Daniel
1.Ich habe nie den "Number" -Typ gesehen und finde keine Dokumentation (in SQL) - also denke ich, dass du "Numeric" meinst. 2. Ich hätte erwartet, dass eine Spalte mit dem Namen "End Date" einen Date (oder DateTime) -Typ enthält. 3. Ihre Groß-/Kleinschreibung ist inkonsistent und kann je nach Servereinstellungen zu Problemen führen. 4. Auszahlung ist eine Zeichenfolge? --------- Das heißt, Ihr Fehler ist ein Typ nicht übereinstimmen; Irgendwo wird eine Zeichenkette (oder etwas, von dem wir denken, dass es wie eine Zeichenkette aussieht - nvarchar) in eine Zahl umgewandelt und es verursacht Probleme. Ich würde zuerst auf # 4 schauen. –