Ionic 3本机SQLite插件无法正常工作

时间:2018-11-26 15:13:35

标签: sqlite ionic-framework ionic3 cordova-plugins ionic-native

我使用离子3 native SQLite plugin。但是下面的代码无法正常工作。即我看不到插入数据的console.log()数据。看来我在这里做错了。你能告诉我正确的方法吗?

注意:没有错误。只是不工作。

  storeApiKeyInSqlite(key: string, name: string) {
    this.sqlite.create({
      name: 'MyInvoices.db',
      location: 'default'
    }).then((db: SQLiteObject) => {
      db.executeSql('CREATE TABLE IF NOT EXISTS Apikeys(Id INT PRIMARY KEY NOT NULL, ApiKey NVARCHAR(100) NOT NULL, ApiName NVARCHAR(100) NULL)', [])
        .then(() => {
          db.executeSql('INSERT INTO Apikeys VALUES(NULL,?,?)', [key, name])
            .then(() => {
              db.executeSql('SELECT * FROM Apikeys', [])
                .then(res => {
                  if (res.rows.length > 0) {
                    console.log(res.rows.item(0).Id);
                    console.log(res.rows.item(0).ApiKey);
                    console.log(res.rows.item(0).ApiName);
                  }
                })
                .catch(e => {
                  console.log(e);
                });
            }).catch(e => {
              e => console.log(e)
            });
        }).catch(e => console.log(e));


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

1 个答案:

答案 0 :(得分:1)

操作反馈:

这是适合我的解决方案:

 storeApiKeyInSqlite(key: string, name: string) {
    this.sqlite.create({
      name: 'MyInvoices.db',
      location: 'default'
    }).then((db: SQLiteObject) => {
      db.executeSql('CREATE TABLE IF NOT EXISTS Apikeys(rowid INTEGER PRIMARY KEY,ApiKey NVARCHAR(100) NOT NULL, ApiName NVARCHAR(100) NULL)', [])
        .then(() => {
          db.executeSql('INSERT INTO Apikeys VALUES(NULL,?,?)', [key, name])
            .then(() => {
              db.executeSql('SELECT * FROM Apikeys', [])
                .then(res => {
                  if (res.rows.length > 0) {
                    console.log(res.rows.item(0).rowid);
                    console.log(res.rows.item(0).ApiKey);
                    console.log(res.rows.item(0).ApiName);
                  }
                })
                .catch(e => {
                  console.log(e);
                });
            }).catch(e => {
              console.log(e)
            });
        }).catch(e => console.log(e));
    }).catch(e => console.log(e));
  }

原始答案:

您不能为明确设置为NULL的{​​{1}}插入PRIMARY KEY

查询以下内容:

NOT NULL