Android Sqlite查询形式
这两种功能我都有问题Android Sqlite查询形式,android,database,sqlite,Android,Database,Sqlite,这两种功能我都有问题 // Insert a new contact in database public void insertInSignature(String TITLE_SI) { try { // Open Android Database Boolean b = checkIsDataAlreadyInDBorNot("DELIVERY_SLIP", "TITLE_SI", TITLE_SI);
// Insert a new contact in database
public void insertInSignature(String TITLE_SI) {
try {
// Open Android Database
Boolean b = checkIsDataAlreadyInDBorNot("DELIVERY_SLIP",
"TITLE_SI", TITLE_SI);
if(b==false)
{
// cursor is empty
ContentValues initialValues = new ContentValues();
initialValues.put("TITLE_SI", TITLE_SI);
db.insertWithOnConflict("DELIVERY_SLIP", null, initialValues,
SQLiteDatabase.CONFLICT_IGNORE);
}
} catch (SQLException sqle) {
Log.e(TAG, "insertUser Error");
Log.e(TAG, "Exception : " + sqle);
} finally {
// Close Android Database
databaseHelper.close();
}
}
public boolean checkIsDataAlreadyInDBorNot(String TableName,
String dbfield, String fieldValue) {
db = databaseHelper.getWritableDatabase();
String Query = "Select * from " + TableName + " where " + dbfield + "="
+ "`"+ fieldValue+"`";
Cursor cursor = db.rawQuery(Query, null);
if (cursor.getCount() <= 0) {
return false;
}
return true;
}
我有这个功能,当它不在数据库中时,我插入签名。。但是布尔函数返回一个SQLexception我不知道为什么我找到了关于表单的信息,但不是因为我的问题
这是我的日志。
我只是想知道我的数据库中是否存在该行
这是我的桌子
提前感谢如果您需要信息,请询问我,而不是每次要插入时都进行查询,为什么不使用ON CONFLICT IGNORE或ONC CONFLICT REPLACE使标题栏唯一?然后不需要检查,只需插入并让唯一性约束为您管理即可。在SQL中,字符串用单引号分隔,而不是反勾号 为避免此类格式问题和SQL注入,应改用参数: 字符串查询=选择*FROM+TableName+WHERE+dbfield+=?; Cursor Cursor=db.rawQueryquery,新字符串[]{fieldValue};
谢谢,我使用你的两个回复,如果我能接受这两个,我会这么做。