【问题标题】:Error inserting records in SQLite DB在 SQLite DB 中插入记录时出错
【发布时间】:2012-08-22 10:50:12
【问题描述】:

在以下几行中,我创建了一个图像路径并将该 pth 存储在 sqlite 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 数据库看起来像:

@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

        long newID = db.insert("MPData", null, cv);
        if (newID == -1)

还要注意,数据库的一个实例是在 onCreate 内部实例化的。

任何解决此问题的建议将不胜感激。

【问题讨论】:

  • cv.put(imgName, imgTitle); cv.put(路径,file.getAbsolutePath()); imgName 和 path 的值是多少?
  • cv.put(path,""+file.getAbsolutePath());
  • 我知道如何解决我的问题...我可以发布我的问题的答案...也许我的灵魂会对其他人有所帮助!!!

标签: android sqlite


【解决方案1】:

你需要得到你的错误信息,(相对于 -1)

在此处查看“insertOrThrow”:Where to get database error information in Android SQLite (e.g. failed insert due to violation of not null)

这样至少你可以深入研究问题。

【讨论】:

  • 没有错误消息超出我在上面发布的 Toast 中显示的错误消息
  • 错误,如来自 sqlite - 或检查 logcat 以查看是否有任何与 sql 相关的错误。您可能会遇到语法错误而您不知道
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-01
  • 1970-01-01
  • 2011-05-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多