2017-03-15 1 views
0

Lorsque j'essaie de mettre à jour une colonne dans mon application Windows, j'obtiens une erreur, j'utilise cette requête.
string qu = "UPDATE Registration_class SET numOfSeat = 300"; await MainPage.con.UpdateAsync(qu);Comment mettre à jour une colonne dans Sqlite dans Universal Windows Application

Here is the Error Screenshot

Si vous avez besoin d'autres informations s'il vous plaît me dire. Merci.

+0

Vous essayez de mettre à jour la table qui n'a pas de clé primaire. Il est possible de mettre à jour des données sans clé primaire (par exemple avec l'utilisation de rownum). Cependant, vous avez probablement juste participé à la création de pk et vous devriez le considérer. Sans cette valeur, le moteur db ne peut pas distinguer les lignes spécifiques, en dépit du fait que vous essayez de mettre à jour toutes les lignes à la fois. Plus: [link] (http://stackoverflow.com/questions/840162/should-each-and-every-table-have-a-primary-key) – soshman

+0

'public class Classe_enregistrement { public string name {get ; ensemble; } public string mot de passe {get; ensemble; } public int numOfSeat {get; ensemble; } } 'ceci est la table ce que j'ai mal fait ici peut me dire comment le réparer. –

Répondre

1

Je ne suis pas sûr de la version de sqlite que vous utilisez. Ensuite, si seulement selon les informations d'erreur, vous devez spécifier le PrimaryKey pour votre table.

Par exemple, comme ce qui suit:

public class Registration_class 
{ 
    [PrimaryKey, AutoIncrement] 
    public int Id {get;set;} 
    public string name { get; set; } 
    public int numOfSeat { get; set; } 
    public string password { get; set; } 
} 

Alors je vais signaler un mauvais endroit dans votre code. Si vous voulez exécuter l'instruction sql directement, vous devez utiliser la méthode db.Execute("UPDATE Registration_class SET numOfSeat = 300");, et non la méthode Update.

Mon exemple de code a été basé sur le blog de Diederik: Using SQLite on the Universal Windows Platform