在以下几行中,我创建了一个图像路径,并将该pth存储在sqqlite DB中:
private void commitToDB() {
imgTitle = "img";
GenerateRandom gr = new GenerateRandom();
imgTitle +=gr.getRand()+".jpeg";
db = mpoh.getWritableDatabase();
cv = new ContentValues();
File dir = Environment.getExternalStorageDirectory();
File file = new File(dir,"/DCIM/"+imgTitle);
cv.put(imgName, imgTitle);
cv.put(path,file.getAbsolutePath());
Toast.makeText(getApplicationContext(),imgTitle, Toast.LENGTH_LONG).show();
long newID = db.insert("MPData", null, cv);
if (newID == -1) {
Toast.makeText(getBaseContext(), "Error Commiting Record(s)",
Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getBaseContext(), "Data Commited Successfully",
Toast.LENGTH_SHORT).show();
}
}
我的SQLite DB看起来像:
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL(" CREATE TABLE " + MP_TABLE_NAME + " ( " +
BaseColumns._ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
" name TEXT, " +
" lat REAL, " +
" lng REAL, " +
" date TEXT, " +
" time TEXT, " +
" path TEXT, " +
" imgName TEXT " +
");" );
}
我的问题是,由于newID = -1
,我收到“Error Commiting Record(s)” long newID = db.insert("MPData", null, cv);
if (newID == -1)
另外需要注意的是,在onCreate中实例化了一个DB实例。
任何解决此问题的建议都将受到赞赏。
答案 0 :(得分:0)
你需要得到你的错误信息,(仅仅是-1)
在此处查看“insertOrThrow”:Where to get database error information in Android SQLite (e.g. failed insert due to violation of not null)
至少你可以深入研究这个问题。