希望有人在Android上使用SQLlite更加知识,能够为这个"测验"提供有用的评论,感谢事先:
创建一个简单的表
String CREATE_DIRBLE_COUNTRIES_TABLE = "CREATE TABLE " + DIRBLE_COUNTRIES_TABLE
+ "("
+ COLUMN_DUMMY + " TEXT,"
+ COLUMN_NAME + " TEXT PRIMARY KEY,"
+ COLUMN_TITLE + " TEXT,"
+ COLUMN_DESCRIPTION + " TEXT,"
+ COLUMN_SLUG + " TEXT,"
+ COLUMN_ANCESTRY + " TEXT,"
+ COLUMN_COUNTRYCODE + " TEXT,"
+ COLUMN_REGION + " TEXT,"
+ COLUMN_SUBREGION + " TEXT"
+ ")";
db.execSQL (CREATE_DIRBLE_COUNTRIES_TABLE);
Run Code Online (Sandbox Code Playgroud)
然后检查该表是否有重复项,因此:
String Query = "Select * from " + table + " where " + column + "=" + value;
Cursor cursor = db.rawQuery(Query, null);
Run Code Online (Sandbox Code Playgroud)
这会导致异常:
引起:android.database.sqlite.SQLiteException:没有这样的列:白俄罗斯(代码1):,同时编译:从名称=白俄罗斯的国家选择*
是什么导致SQLlite将列名中的值白俄罗斯语解释为列?
在几乎相同的"流派"表中,COLUMN_ID用作主键,此代码完美运行.这就是为什么我用假人替换了COLUMN_ID,以防它与_ID列发生冲突,而_ID列应该是自动创建的.
SQL中的字符串文字'single quotes'不会被解释为列名等标识符.
但是,使用?变量并绑定值更好:
String Query = "Select * from " + table + " where " + column + "=?";
Cursor cursor = db.rawQuery(Query, new String[] { value });
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
44 次 |
| 最近记录: |