使用React Native在Sqlite中插入多个记录

时间:2019-11-05 12:28:44

标签: sqlite react-native expo

我尝试使用SQLite在React Native中插入多行。

这是代码:

rows = responseJson.rows;

     for (i = 0; i < rows.length; i++) {

        row=rows[i];
        query = `insert into ComuniUserAccountSync values (
            ${row.IDComuniUserAccountSync},
            ${row.IdAzienda},
            ${row.IdComune},
            ${row.IdUserAccount},
            '${row.DescrizioneComune}',
            '${row.DateLastUpdateMaster}'
        )`;


        db.transaction(
            tx => {
                tx.executeSql(query, [], (a,b) =>
                    console.log("!OK!!", JSON.stringify(b)), (a, b) =>
                        console.log("!ERROR!!", a, b)
                )

            }
       );

     }

但是结果是我只插入最后一行很多次!这是

的输出
db.transaction(
        tx => {
            tx.executeSql("select IDComuniUserAccountSync from ComuniUserAccountSync", [], (a,b) =>
            console.log("!OK!", JSON.stringify(b)), (a,b) =>
            console.log("!ERROR!!", JSON.stringify(b))
    );
        }
    );

!好! {“ rowsAffected”:0,“ rows”:{“ _ array”:[{“ IDComuniUserAccountSync”:72},{“ IDComuniUserAccountSync”:72},{“ IDComuniUserAccountSync”:72},{“ IDComuniUserAccountSync”:72},{ “ IDComuniUserAccountSync”:72},.......

有帮助吗? 最高

1 个答案:

答案 0 :(得分:0)

insertCategories(arrCateData){


  let keys = Object.keys(arrCateData[0])

  let arrValues = []

    var len = arrCateData.length;



    for (let i = 0; i < len; i++) {
      arrCateData[i].image = `"${arrCateData[i].image}"`;
      arrCateData[i].thumbnail = `"${arrCateData[i].thumbnail}"`;
      arrCateData[i].name = `"${arrCateData[i].name}"`;
      arrCateData[i].path = `"${arrCateData[i].path}"`;
      arrValues.push("(" + Object.values(arrCateData[i]) +")");
    }

    // console.log(arrValues)


  return new Promise((resolve) => {
    this.initDB().then((db) => {
      db.transaction((tx) => {
        tx.executeSql("INSERT INTO category ("+ keys + ") VALUES " + String(arrValues)).then(([tx, results]) => {
          resolve(results);
        });
      }).then((result) => {
        this.closeDatabase(db);
      }).catch((err) => {
        console.log(err);
      });
    }).catch((err) => {
      console.log(err);
    });
  });  

}

此代码可以帮助您我将数组传递给函数,并将根据您的要求插入数据jusr更改数据