Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在sqlite中填充表的正确方法是什么_Android_Sqlite - Fatal编程技术网

Android 在sqlite中填充表的正确方法是什么

Android 在sqlite中填充表的正确方法是什么,android,sqlite,Android,Sqlite,我想将数据添加到sqlite表中。我创建了如下的字符串数组 String idPriceArray = "1, 2, 3, 4, 5"; String priceSort = "Sort1, Sort2, Sort3, Sort4, Sort5"; String priceGrade = "A, B, C, D, E"; String priceDiameter = "45+, 40+, 35+, 32+, 28+"; String priceLength = "300, 250, 250, 2

我想将数据添加到sqlite表中。我创建了如下的字符串数组

String idPriceArray = "1, 2, 3, 4, 5";
String priceSort = "Sort1, Sort2, Sort3, Sort4, Sort5";
String priceGrade = "A, B, C, D, E";
String priceDiameter = "45+, 40+, 35+, 32+, 28+";
String priceLength = "300, 250, 250, 220, 200";
String stumpPrice1 = "1900.00, 1300.00, 700.00, 450.00, 1400.00";
String stumpPrice2 = "248, 170, 144, 91, 59";
String roadPrice1 = "2000.00, 1400.00, 1200.00, 800.00, 550.00";
String roadPrice2 = "261, 183, 157, 104, 72";
String crustDeduction = "4, 4, 3, 3, 2";
然后我把它们传给addPrices方法,就像这样

public void addPrice() {
        SQLiteDatabase db = this.getWritableDatabase();
        for (int i=0; i < idPriceArray.length(); i++) {
            ContentValues cv = new ContentValues();
            cv.put(PRICE_SORT, priceSort);
            cv.put(PRICE_GRADE, priceGrade);
            cv.put(PRICE_DIAMETER, priceDiameter);
            cv.put(PRICE_LENGTH, priceLength);
            cv.put(PRICE_STUMP_KN, stumpPrice1);
            cv.put(PRICE_STUMP_EUR, stumpPrice2);
            cv.put(PRICE_ROAD_KN, roadPrice1);
            cv.put(PRICE_ROAD_EUR, roadPrice1);
            cv.put(PRICE_CRUST, crustDeduction);
            db.insert(TABLE_PRICE, null, cv);
        }
        db.close();
    }
public void addPrice(){
SQLiteDatabase db=this.getWritableDatabase();
对于(int i=0;i
问题是我把所有的种类、分数和其他的东西都排在一行。当我在布局中显示它们时,我得到如下结果:
排序:Sort1、Sort2、Sort3
等级:A、B、C、D、E.
但我想这样做:
排序:Sort1
等级:A
都是这样
我想知道这样填充表的正确方法是什么

编辑:
这是我的getAllPrices方法。我认为这也很好

  public ArrayList<Price> getAllPrices() {
        ArrayList<Price> priceList = new ArrayList<Price>();
        String selectQuery = "SELECT * FROM " + TABLE_PRICE + " ORDER BY " + PRICE_ID;
        SQLiteDatabase db = this.getWritableDatabase();
        Cursor cursor = db.rawQuery(selectQuery, null);

        if (cursor.moveToFirst()) {
            do {
                Price price = new Price();
                price.setId(cursor.getLong(0));
                price.setSort(cursor.getString(1));
                price.setGrade(cursor.getString(2));
                price.setDiameter(cursor.getString(3));
                price.setLength(cursor.getString(4));
                price.setStumpPrice_1(cursor.getString(5));
                price.setStumpPrice_2(cursor.getString(6));
                price.setRoadPrice_1(cursor.getString(7));
                price.setRoadPrice_2(cursor.getString(8));
                price.setDeduction(cursor.getString(9));
                priceList.add(price);
            }while (cursor.moveToNext());
        }
        return priceList;
    }
public ArrayList getAllPrices(){
ArrayList priceList=新的ArrayList();
String selectQuery=“SELECT*FROM”+表格价格+”订单依据“+价格\u ID”;
SQLiteDatabase db=this.getWritableDatabase();
Cursor Cursor=db.rawQuery(selectQuery,null);
if(cursor.moveToFirst()){
做{
价格=新价格();
price.setId(cursor.getLong(0));
price.setSort(cursor.getString(1));
price.setGrade(cursor.getString(2));
price.setDiameter(cursor.getString(3));
price.setLength(cursor.getString(4));
price.setStumpPrice_1(cursor.getString(5));
price.setStumpPrice_2(cursor.getString(6));
price.setRoadPrice_1(cursor.getString(7));
price.setRoadPrice_2(cursor.getString(8));
price.seteduction(cursor.getString(9));
价格表。添加(价格);
}while(cursor.moveToNext());
}
返回价格表;
}
在我的布局中,我创建了一个基本适配器,在其中显示数据

是不是我把东西加到桌子上还搞砸了

首先需要将
字符串
拆分为单独的条目。例如:

String[] priceSortArr = priceSort.split(",");
//Repeat for the rest...

public void addPrice() {
    SQLiteDatabase db = this.getWritableDatabase();
    for (int i=0; i < count; i++) {
        ContentValues cv = new ContentValues();
        //Worth calling trim() to remove any leading and trailing white space
        cv.put(PRICE_SORT, priceSortArr[i].trim());
        //etc.
        db.insert(TABLE_PRICE, null, cv);
    }
    db.close();
}

您尚未创建
数组
。您已经创建了
字符串

首先创建这样的数组-

String priceSort[] = new String[]{"Sort1", "Sort2", "Sort3", "Sort4", "Sort5"};
对所有阵列执行此操作。然后在
for
循环中,在每行中分别插入每个项目。注意我是如何使用for循环的
I
value从数组中获取值的

for (int i=0; i < idPriceArray.length(); i++) {
        ContentValues cv = new ContentValues();
        cv.put(PRICE_SORT, priceSort[i]);
        cv.put(PRICE_GRADE, priceGrade[i]);
        cv.put(PRICE_DIAMETER, priceDiameter[i]);
        cv.put(PRICE_LENGTH, priceLength[i]);
        cv.put(PRICE_STUMP_KN, stumpPrice1[i]);
        cv.put(PRICE_STUMP_EUR, stumpPrice2[i]);
        cv.put(PRICE_ROAD_KN, roadPrice1[i]);
        cv.put(PRICE_ROAD_EUR, roadPrice1[i]);
        cv.put(PRICE_CRUST, crustDeduction[i]);
        db.insert(TABLE_PRICE, null, cv);
    }
for(int i=0;i

在此之后,sql表中将有5行,每行对应1项。

完成此操作,但布局为空。我应该改变我的价格等级吗?我是说getter和setter?我没有看到任何Price类对象。您在哪里使用它们?我使用它们从价格表中获取价格值,并在布局中显示它们。我应该把价格类的物品寄给你吗。它是简单的构造函数、getter和setter方法。我将我的idPriceArray(id-s)转换为与您所说的priceSort[]相同的值。然后我为循环设置了
for(inti=0;i
。可能是这个问题吗?价格等级是完美的。现在发布您如何从sqlite检索数据并生成price对象。
for (int i=0; i < idPriceArray.length(); i++) {
        ContentValues cv = new ContentValues();
        cv.put(PRICE_SORT, priceSort[i]);
        cv.put(PRICE_GRADE, priceGrade[i]);
        cv.put(PRICE_DIAMETER, priceDiameter[i]);
        cv.put(PRICE_LENGTH, priceLength[i]);
        cv.put(PRICE_STUMP_KN, stumpPrice1[i]);
        cv.put(PRICE_STUMP_EUR, stumpPrice2[i]);
        cv.put(PRICE_ROAD_KN, roadPrice1[i]);
        cv.put(PRICE_ROAD_EUR, roadPrice1[i]);
        cv.put(PRICE_CRUST, crustDeduction[i]);
        db.insert(TABLE_PRICE, null, cv);
    }