【发布时间】:2017-04-07 08:57:52
【问题描述】:
我正在构建 android 移动应用程序,并使用 SQLite 作为其数据库。我在表上插入记录时遇到问题,它返回一个 Toast 消息,该消息是“插入失败”,表示保存数据不成功。
public class DatabaseHelper extends SQLiteOpenHelper {
public static final String DATABASE_NAME = "MobileBuddy.db";
public static final String TABLE_NAME = "bets_table";
public static final String COL_1 = "COMBINATION";
public static final String COL_2 = "DRAW_DATE";
public static final String COL_3 = "TRANS_DATE";
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE " + TABLE_NAME + "(" + COL_1 + " TEXT, " + COL_2 + " DATETIME, " + COL_3 + " DATETIME)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
onCreate(db);
}
public boolean insertBetData(String combination, String drawDate, String transDate) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(COL_1, combination);
contentValues.put(COL_2, drawDate);
contentValues.put(COL_3, transDate);
long result = db.insert(TABLE_NAME, null, contentValues);
if (result == 1) return true; else return false;
}
}
我在 onClick 事件中使用了下面的代码,这应该会触发在表格中插入数据。
calendar = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd");
boolean isSave = lottoDb.insertBetData(validBet, sdf.format(calendar.getTime()), sdf.format(calendar.getTime()));
if (isSave == true)
Toast.makeText(PlaySixNumbers.this, "Inserted", Toast.LENGTH_SHORT).show();
else
Toast.makeText(PlaySixNumbers.this, "Insert failed", Toast.LENGTH_SHORT).show();
我的代码有什么问题?希望你能理解我的询问..
【问题讨论】:
-
附加你的 logcat 输出
-
尝试将.. sdf.format(calendar.getTime()) 放入一个字符串...并将此字符串传递给您的 insertMethod
标签: android database sqlite insert