【发布时间】: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
【问题讨论】:
标签: java android sqlite sql-insert