android - 数据未插入 SQLite 数据库

标签 android android-sqlite

我正在创建一个应用程序,但是当我要插入一些数据时,它不起作用。这是一个 screenshot我的应用程序,包括错误消息。这是我的 database 类:

public class database extends SQLiteOpenHelper {
    public static final String DATABASE_NAME = "STUDENT";
    public static final String TABLE_NAME = "TRIP";
    public static final String COL1 = "ID";
    public static final String COL2 = "NAME";
    public static final String COL3 = "CURRENT";
    public static final String COL4 = "DESTINATION";
    public static final String COL5 = "BUDGET";
    public database(Context context) {
        super(context, DATABASE_NAME, null, 1);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("create table if not exists " + TABLE_NAME + "(" + COL1 + " INTEGER PRIMARY KEY AUTOINCREMENT,NAME TEXT,CURRENT TEXT,DESTINATION TEXT,BUDGET INTEGER )");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("drop table if exists " + TABLE_NAME);
        onCreate(db);
    }
    public void insertdata(String name,String current,String destination,String budget)
    {
        SQLiteDatabase db=this.getWritableDatabase();
        db.execSQL("insert into TRIP(NAME,CURRENT,DESTINATION,BUDGET)values('" + name + "','" + current + "','" + destination + "',"+Integer.parseInt(budget)+")");
    }
}

关于如何解决这个问题有什么建议吗?

最佳答案

尝试让 insertdata 函数返回一个 long。用这个函数替换 insertdata 函数:

public long insertdata(String name, String current, String destination, String budget) {
    SQLiteDatabase db = this.getWritableDatabase();

    ContentValues contentValues = new ContentValues();
    contentValues.put(COL2, name);
    contentValues.put(COL3, current);
    contentValues.put(COL4, destination);
    contentValues.put(COL5, budget);

    return db.insert(TABLE_NAME, null, contentValues);
}

在您插入数据的 Activity 中,确保您像这样调用此函数:

database db = new database(this);

if (db.insertdata("name", "current", "destination", "budget") > 0)
    // do something else here

如果您仍然遇到同样的问题,请卸载您的应用并重试。如果仍然无法正常工作,请随时在下方发表评论。

关于android - 数据未插入 SQLite 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39496604/

相关文章:

java - 如何从sqlite数据库中获取dd/mm/yyyy格式的两个日期之间的数据

sql - 具有反向 LIKE 条件的查询

java - SQLite 保存重复项

java - 理解代码时出现问题

android - 如何有 LED 灯通知?

android - 在 Android 上向现有设备管理员添加新的使用策略

android - 单击操作栏项目时无法打开抽屉导航

android - 适用于 Android/iOS 的 WMS View /库

android - 如何在表布局中动态添加行或如何在单表布局中显示完整的数据库记录

java - android.database.sqlite.SQLiteException : no such column: bucket_display_name