2
votes

Erreur de base de données SQLite nom de colonne en double

Error Code : 1 (SQLITE_ERROR) Caused By : SQL(query) error or missing database.
    (duplicate column name: Floor (code 1)
while compiling: 
CREATE TABLE LocalizationInfo(_item INTEGER PRIMARY KEY, idINT,Floor TEXT, Floor HeightTEXT, Adress TEXT ,LatitudeTEXT, LongitudeTEXT, Altitude TEXT,Pressure TEXT) 
I tried to save my data i.e. Floor,Floor height, GPS data and Adress which was obtained from another activity to another which implements the SQLite data for saving,loading,editting and deletion. 
I am always receiving this error message when i try to add the data from the other activity to the database by clicking the list or post button which directs the user to the database. 

2 commentaires

pouvez-vous s'il vous plaît partager à quoi ressemble votre déclaration SQL? il semble que l'erreur soit due au fait que la hauteur du sol et de la hauteur du sol est déclenchée comme un doublon. avez-vous essayé de mettre un support comme, [FLOOR], [FLOOR HEIGHT]?


lors de la compilation: CREATE TABLE LocalizationInfo (_item INTEGER PRIMARY KEY, idINT, Floor TEXT, Floor HeightTEXT, Adress TEXT, LatitudeTEXT, LongitudeTEXT, Altitude TEXT, Pressure TEXT)


4 Réponses :


1
votes

essayez de ne pas mettre d'espace entre la hauteur du sol, si vous le souhaitez, vous pouvez faire _ ie. TEXTE Floor_Height


0 commentaires

1
votes

Je pense que votre problème est dû à l'utilisation d'espaces pour votre nom de colonne Hauteur du sol. Ce serait une bonne idée que vous devriez utiliser un trait de soulignement au lieu d'un espace pour les noms de colonne. Vous pouvez définir les noms de vos colonnes comme floor, floor_height, gps_data et address.


0 commentaires

1
votes

Votre problème est que

CREATE TABLE LocalizationInfo(
    _item INTEGER PRIMARY KEY, 
    id INT,
    Floor TEXT, 
    FloorHeight TEXT, 
    Adress TEXT ,
    Latitude TEXT, 
    Longitude TEXT, 
    Altitude TEXT,
    Pressure TEXT
)
  1. a un espace entre le sol et la hauteur (d'où le nom de colonne en double lors de la tentative de création du tableau) et
  2. n'a pas d'espace entre la hauteur / la latitude et la longitude et le texte et également entre id et INT.

Le simple fait de corriger 1 finirait par créer des colonnes ( ce qui entraînerait probablement des problèmes persistants ): -

  • _item (comme prévu),
  • idINT (vous voulez probablement un identifiant avec un type INTEGER),
  • Plancher (comme prévu),
  • FloorHeightText (vous voulez probablement FloorHeight avec un type de TEXT),
  • Adresse (comme prévu),
  • LatitudeTEXT (vous voulez probablement Latitude avec un type de TEXTE),
  • LongitudeText (vous voulez probablement la longitude avec un type de TEXTE),
  • Altitude (comme prévu),
  • Pression (comme prévu)

Essayez de changer pour utiliser: -

CREATE TABLE LocalizationInfo(
    _item INTEGER PRIMARY KEY, 
    idINT,
    Floor TEXT, 
    Floor HeightTEXT, 
    Adress TEXT ,
    LatitudeTEXT, 
    LongitudeTEXT, 
    Altitude TEXT,
    Pressure TEXT
)

Vous devrez soit supprimer / effacer les données de l'application, soit désinstaller l'application, puis réexécuter l'application, comme la méthode onCreate ne s'exécutera pas car la base de données existe.


5 commentaires

java.lang.RuntimeException: Impossible de démarrer l'activité ComponentInfo {com.example.it_taste.floor_test_2 / com.example.‌ it_taste.floor_test_‌ 2.ListActivity}: java.lang.IllegalArgumentException: la colonne '_id' n'existe pas


@DanMatthewLucas vous essayez d'utiliser un adaptateur de curseur à une supposition. Un nom de colonne _id est requis (et doit être un alias de la colonne rowid ) pour les adaptateurs de curseur. Je suggérerais de changer _item en _id (INTEGER PRIMARY KEY fait de la colonne un alias de la colonne rowid ). Évidemment, changez _item partout où il est utilisé.


Salut, je reçois toujours une erreur indiquant que l'identifiant n'est pas créé bien que j'ai tout changé.J'ai relancé l'application plusieurs fois.


Utilisez CREATE TABLE LocalizationInfo (_id INTEGER PRIMARY KEY, id INT, Floor TEXT, FloorHeight TEXT, Adress TEXT, Latitude TEXT, Longitude TEXT, Altitude TEXT, Pressure TEXT)


Salut, je reçois toujours la même erreur dans le logcat: Processus: com.example.it_taste.floor_test_2, PID: 20839 java.lang.RuntimeException: Impossible de démarrer l'activité ComponentInfo {com.example.it_taste.floor_test_2 / com.example. ‌ it_taste.floor_test_‌ 2.ListActivity}: java.lang.IllegalArgumentException: la colonne '_id' n'existe pas



0
votes

pouvez-vous ne pas définir la valeur des lignes / colonnes du tableau Ex:

private static final String NEWS_PUBLISHER = "news_publisher";
  private static final String NEWS_CONTENT = "news_content";
  private static final String NEWS_DATE = "news_date";

Peut-être que vous avez défini un nom pour tout cela ...


0 commentaires