【问题标题】:sqlLite in android didnt insert my data to tableandroid中的sqlite没有将我的数据插入到表中
【发布时间】:2020-08-16 19:54:04
【问题描述】:

我不知道为什么我在执行 insertGasData 后返回结果 = -1。在其他类似的结构中,结果是!= -1,但有 = -1。 有DatabaseHelper类和主类

public class DatabaseHelper extends SQLiteOpenHelper {
    public static final String DATABASE_NAME = "car.db";
    public static final String TABLE_NAME2 = "car_gas_table";

    public static final String COL_G_1 = "GAS_ID";
    public static final String COL_G_2 = "GAS_DATE";
    public static final String COL_G_3 = "GAS_MILEAGE";
    public static final String COL_G_4 = "FUEL_TYPE";
    public static final String COL_G_5 = "FUEL_COST";
    public static final String COL_G_6 = "FUEL_VOLUME";
   
    public DatabaseHelper(@Nullable Context context) {
        super(context, DATABASE_NAME, null, 1);

    }

    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase) {
        sqLiteDatabase.execSQL("create table " + TABLE_NAME2 + " (GAS_ID INTEGER PRIMARY KEY AUTOINCREMENT, GAS_DATE TEXT, GAS_MILEAGE TEXT, FUEL_TYPE TEXT, FUEL_COST TEXT, FUEL_VOLUME TEXT)");
    }

    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
        sqLiteDatabase.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME2);
    }
    
    public boolean insertGasData(String date, String mileage, String fuel_type, String fuel_price, String fuel_volume) {
        SQLiteDatabase sqLiteDatabase = this.getWritableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put(COL_G_2, date);
        contentValues.put(COL_G_3, mileage);
        contentValues.put(COL_G_4, fuel_type);
        contentValues.put(COL_G_5, fuel_price);
        contentValues.put(COL_G_6, fuel_volume);
        long result = sqLiteDatabase.insert(TABLE_NAME2, null, contentValues);
        if (result == -1)
            return false;
        else return true;
    }

有一个调用方法 我使用那里的字符串来消除其他错误,但它没有帮助

    public void AddRefuelrData() {
        bDodaj.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
             //   boolean isInsert = myDb.insertGasData(eRefDate.getText().toString(), eRefMileage.getText().toString(), eRefType.getText().toString(), eRefPrice.getText().toString(), eRefVolume.getText().toString());
                boolean isInsert = myDb.insertGasData("dd","mm", "tt", "pr", "vo");
                if (isInsert == true)
                    Toast.makeText(MainActivity.this, "Data inserted", Toast.LENGTH_LONG).show();
                else
                    Toast.makeText(MainActivity.this, "Data not inserted", Toast.LENGTH_LONG).show();
            }
        });
    }

调用方法 insertGasData 后我返回 false

enter image description here

【问题讨论】:

    标签: java android sqlite sql-insert


    【解决方案1】:

    您确定该表实际上是正确创建的吗? 使用设备文件资源管理器检查数据库是否已创建。 这应该有助于缩小问题范围。

    【讨论】:

    • 感谢您的建议。我在设备文件资源管理器中查找数据库,并删除了数据库和数据库日志文件。现在完全按照我的意愿工作
    • 很高兴能帮上忙。 :)
    猜你喜欢
    • 2021-07-08
    • 1970-01-01
    • 2011-08-05
    • 1970-01-01
    • 1970-01-01
    • 2015-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多