gpt4 book ai didi

android - 如何将数组中的值填充到 SQLite 数据库中

转载 作者:行者123 更新时间:2023-11-30 05:05:43 24 4
gpt4 key购买 nike

我的应用程序通过一个 EditText 字段接收用户输入数据并添加到数组中。然后应用程序使用代码通过数据库助手 Controller 将数组传递给助手类

controller.populateStockMaterialDB(InventoryData); 

在我的数据库助手中,我有以下代码来读取数组并使用数组中的 6 个值填充数据库表

public void populateStockMaterialDB(ArrayList<String> inventoryData) {
SQLiteDatabase db = this.getWritableDatabase();

for (int i=0; i< inventoryData.size(); i++) {
ContentValues contentValues = new ContentValues();
contentValues.put(FoodoclockContract.FoodolockEntry.COLUMN_MATERIAL, inventoryData.get(i));
contentValues.put(FoodoclockContract.FoodolockEntry.COLUMN_UOM_STORE, inventoryData.get(i));
contentValues.put(FoodoclockContract.FoodolockEntry.COLUMN_UOM_AVAILABLE, inventoryData.get(i));
contentValues.put(FoodoclockContract.FoodolockEntry.COLUMN_QUANTITY_STORE, inventoryData.get(i));
contentValues.put(FoodoclockContract.FoodolockEntry.COLUMN_QUANTITY_AVAILABLLE, inventoryData.get(i));
contentValues.put(FoodoclockContract.FoodolockEntry.COLUMN_MOQ, inventoryData.get(i));

this.getWritableDatabase().insertOrThrow(FoodoclockContract.FoodolockEntry.TABLE_NAME7, "", contentValues);
}
}

数组数据填充到表中但不正确。我没有用一行 6 列填充数据,而是用 6 行 6 列填充了数据。我将不胜感激对我的代码的一些帮助。谢谢

最佳答案

您正在遍历数组中的每个项目并填充所有列,因此行数和列数相等,这将等于数组的长度。

你应该做的是,删除循环并手动使用索引写入每一列

public void populateStockMaterialDB(ArrayList<String> inventoryData) {
SQLiteDatabase db = this.getWritableDatabase();

ContentValues contentValues = new ContentValues();
contentValues.put(FoodoclockContract.FoodolockEntry.COLUMN_MATERIAL, inventoryData.get(1));
contentValues.put(FoodoclockContract.FoodolockEntry.COLUMN_UOM_STORE, inventoryData.get(2));
contentValues.put(FoodoclockContract.FoodolockEntry.COLUMN_UOM_AVAILABLE, inventoryData.get(3));
contentValues.put(FoodoclockContract.FoodolockEntry.COLUMN_QUANTITY_STORE, inventoryData.get(4));
contentValues.put(FoodoclockContract.FoodolockEntry.COLUMN_QUANTITY_AVAILABLLE, inventoryData.get(5));
contentValues.put(FoodoclockContract.FoodolockEntry.COLUMN_MOQ, inventoryData.get(6));

this.getWritableDatabase().insertOrThrow(FoodoclockContract.FoodolockEntry.TABLE_NAME7, "", contentValues);
}

这应该可以解决您的问题。但是更好的方法是使用一个模型来保存数据库中每一列的值,然后映射到相应的数据,只需要一个类,它包含要保存在数据库中的每个属性的字符串字段然后使用每个字段的值填充数据库。

关于android - 如何将数组中的值填充到 SQLite 数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54638673/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com