SQLite запросы с использованием IONIC

-3

Я пытаюсь выполнить запросы SQLite (INSERT и SELECT * FROM TABLE) с помощью IONIC. Я ищу вашу помощь...

1) Я создаю базу данных:

createDatabaseFile() {
    this.sqlite.create({
      name: DATABASE_FILENAME,
      location: 'default'
    })
      .then((db: SQLiteObject) => {
        this.db = db;
        //Create table 'favories':
        this.createTable("CREATE TABLE IF NOT EXISTS favories ( ID INTEGER PRIMARY KEY NOT NULL, cityNameFavory VARCHAR(100) );");
        console.log('DB well created.');
      })
      .catch(e => console.log(e));
  }

Метод createTable приведен ниже:

 createTable(sqlInstruction) {
    this.db.executeSql(sqlInstruction, {})
    .then(
      () => {
      console.log('OK : ' + sqlInstruction);
    })
    .catch(e => console.log(e));
  }

2) Я добавляю город как услугу, используя метод addFavorite (city), который вызывается из.html:

    <ion-input [(ngModel)]="cityName" placeholder="Add a city..."></ion-input>
    <button ion-button icon-only (click)="addFavorite(cityName)">
      <ion-icon name="add"></ion-icon>
    </button>

Я могу получить имя города в console.log, но я не успел вставить этот город в свой стол. Ниже приведен метод addFavorite:

addFavorite(city) {
    this.db.executeSql("INSERT INTO favories (cityNameFavory) VALUES(?);", {city})
    .then(() => {
      alert('Ville ajoutée !');
    })
    .catch(e => console.log(e));

  }

3) Я не могу получить свои данные, когда я использую "SELECT x FROM", даже если я хорошо извлекаю количество строк:

getData() {
    this.db.executeSql("SELECT cityNameFavory FROM favories;", {})
    .then((data) => {
      if(data == null) {
        alert("Empty!")
            }

            if(data.rows) {
        console.log("Number of lines = " + data.rows.length);

                if(data.rows.length > 0) {
                    for(var i = 0; i < data.rows.length; i++) {
            this.listFavories.push(data.rows.item(i).cityNameFavory);
            alert(this.listFavories[i]);
          }

        }
      }
    })
    .catch(e => console.log(e));
  }

А также:

public listFavories: string[] = [];

Ниже вы найдете мои данные:

пакеты cli:

@ionic/cli-utils  : 1.19.0
ionic (Ionic CLI) : 3.19.0

глобальные пакеты:

cordova (Cordova CLI) : 7.1.0

локальные пакеты:

@ionic/app-scripts : 3.1.4
Cordova Platforms  : none
Ionic Framework    : ionic-angular 3.9.2

система:

Android SDK Tools : 26.1.1
Node              : v7.9.0
npm               : 4.2.0
OS                : Windows 10
Теги:
ionic-framework

1 ответ

-1

Наконец, я изменил свой код следующим образом:

this.db.executeSql('INSERT INTO 'table' (cityName) VALUES(\'' + city + '\')', {})
    .then(() => {
      console.log("City added");
    })
    .catch(e => console.log(e));

Ещё вопросы

Сообщество Overcoder
Наверх
Меню