gpt4 book ai didi

java - Android sqlite 插入数据 SQLiteException

转载 作者:行者123 更新时间:2023-11-29 03:47:54 30 4
gpt4 key购买 nike

    @Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(DATABASE_CREATE);
// providers data
// db.execSQL("insert into "
// + TABLE_PROVIDERS
// + " (_id, provider_id, parent_id, title, image, sh_n, enable, visible, image_bg, type, is_group, hide_in_search, limit_min, limit_max, off_on_line, invoice_search) "
// + "VALUES (1,600,101,'Источники оплаты','',1,1,0,'','',1,1,0,0,0,0)");

ContentValues cv = new ContentValues();
cv.put("_id", 1);
cv.put("provider_id", 600);
cv.put("parent_id", 101);
cv.put("title", "Bla");
cv.put("image", "bla");
cv.put("sh_n", 1);
cv.put("enable", 1);
cv.put("visible", 1);
cv.put("image_bg", "");
cv.put("type", "");
cv.put("is_group", 1);
cv.put("hide_in_search", 1);
cv.put("limit_min", 10);
cv.put("limit_max", 10000);
cv.put("off_on_line", 1);
cv.put("invoice_search", 1);

db.insertOrThrow(TABLE_PROVIDERS, null, cv);
}

现在我按照建议逐行插入:

import java.util.*;

import android.content.*;
import android.database.*;
import android.database.sqlite.*;

public class ProviderDataSource {

private SQLiteDatabase database;
private MySQLiteHelper dbHelper;

public ProviderDataSource(Context context) {
dbHelper = new MySQLiteHelper(context);
}

public void open() throws SQLException {
database = dbHelper.getWritableDatabase();
}

public void close() {
dbHelper.close();
}

public List<Provider> getProvidersByParentId(long parentId) {

List<Provider> providersList = new ArrayList<Provider>();

Cursor cursor = database.query(MySQLiteHelper.TABLE_PROVIDERS, new String[] { "provider_id", "title", "image" }, " parent_id=" + parentId,
null, null, null, null);

cursor.moveToFirst();
while (!cursor.isAfterLast()) {
Provider provider = cursorToProvider(cursor);
providersList.add(provider);
cursor.moveToNext();
}
cursor.close();
System.out.println("getProvidersByParentId");
return providersList;
}

private Provider cursorToProvider(Cursor cursor) {

Provider provider = new Provider();
provider.setId(cursor.getInt(1));
provider.setTitle(cursor.getString(3));
provider.setImg(cursor.getString(4));

return provider;

}

}

这是行不通的。似乎该行未插入,getProvidersByParentId 方法返回的数组为空。作为参数的 Parent_id 是 101。

最佳答案

你的插入语句是错误的。在 SQLite 中,您不能通过用逗号分隔来插入多条记录,实际上您需要为此准备单独的插入命令。但是如果你的 SQLite 版本是 3.7.11 那么它是可能的。

阅读this .

关于java - Android sqlite 插入数据 SQLiteException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10072251/

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