繁体   English   中英

Android,SQLite无法识别的令牌

[英]Android, SQLite unrecognized token

尝试从数据库中删除时,出现无法识别的令牌异常。
我试图将字符串包括在''而不是"" ,我试图将值存储在专用的字符串变量中,什么也没有。

我只是不知道该怎么办,这是当前的代码:

public void deleteCrime(Crime crime) {
    ContentValues values = getContentValues(crime);

    mDatabase.delete(CrimeTable.NAME,
            values.getAsString(CrimeTable.Cols.UUID) + "= ?",
            new String[]{crime.getId().toString()});

}

我也尝试过这种方式:

public void deleteCrime(Crime crime) {
    ContentValues values = getContentValues(crime);

    mDatabase.delete(CrimeTable.NAME,
            values.getAsString(CrimeTable.Cols.UUID) + "= " + crime.getId().toString(),
            null);

}

和这个:

 public void deleteCrime(Crime crime) {
    ContentValues values = getContentValues(crime);

    String databaseId = values.getAsString(CrimeTable.Cols.UUID);
    String crimeId = crime.getId().toString();

    mDatabase.delete(CrimeTable.NAME,
            databaseId + "= ?",
            new String[]{crimeId});

}

和:

public void deleteCrime(Crime crime) {
    ContentValues values = getContentValues(crime);

    String databaseId = values.getAsString(CrimeTable.Cols.UUID);
    String crimeId = crime.getId().toString();

    mDatabase.delete(CrimeTable.NAME,
            databaseId + "= " + crimeId,
            null);

}

以及将''" "应用于字符串的所有组合和排列...
即使我不将它们解析为字符串并在它们上使用''"" ,也总是会遇到相同的错误(来自本文的前4个代码):

E/AndroidRuntime: FATAL EXCEPTION: main
              Process: com.example.ricardo.criminalintent, PID: 27841
              android.database.sqlite.SQLiteException: unrecognized token: "46cf" (code 1): , while compiling: DELETE FROM crimes WHERE fe950f06-dd38-46cf-898e-f4a7f7f27dab = fe950f06-dd38-46cf-898e-f4a7f7f27dab

如果我在数据库中尝试另一行:

E/AndroidRuntime: FATAL EXCEPTION: main
              Process: com.example.ricardo.criminalintent, PID: 28258
              android.database.sqlite.SQLiteException: no such column: b09902bc (code 1): , while compiling: DELETE FROM crimes WHERE b09902bc-0829-4989-8395-ed24dc397a85 = b09902bc-0829-4989-8395-ed24dc397a85

和...

public void deleteCrime(Crime crime) {
    mDatabase.delete(CrimeTable.NAME,
            CrimeTable.Cols.UUID + "=? ",
            new String[]{crime.getId().toString()});

}

或者(从这篇文章的最后一个代码中,带有And ...的代码):

E/AndroidRuntime: FATAL EXCEPTION: main
              Process: com.example.ricardo.criminalintent, PID: 3418
              android.database.sqlite.SQLiteException: unrecognized token: "46cf" (code 1): , while compiling: DELETE FROM crimes WHERE uuid= fe950f06-dd38-46cf-898e-f4a7f7f27dab

我不知道该怎么办...我很拼命,请帮助我!

尝试以下代码,而不是:

public void deleteCrime(Crime crime)
{
    mDatabase.execSQL("DELETE FROM crimes WHERE uuid = ?", new String([] {crime.getId()}));
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM