您好我有“Table_Subject”,我需要将主题名称与“table_subject”的主题进行比较
主题名称和该主题的返回ID。我这样做,但它没有返回任何价值
这是我的示例代码供参考
请给我一些提示或代码。
提前致谢。
public int getSubjectId(String subjectName)
{
int id2 = 0;
try
{
SQLiteDatabase db = this.getWritableDatabase();
String selectQuery= "SELECT s_id FROM " + TABLE_SUBJECT;
Cursor cursor = db.rawQuery(selectQuery, null);
// looping through all rows and adding to list
if (cursor.moveToFirst())
{
do {
if(subjectName.equals(cursor.getString(1)))
{
id2=cursor.getInt(0);
}
}
while(cursor.moveToNext());
db.close();
}
}
catch(Exception e)
{
e.printStackTrace();
}
return id2;
}
答案 0 :(得分:6)
我建议您在这里使用SQL而不是java,因为它更容易,创建一个检查匹配字符串的适当查询,并返回id:
public int getIdForString(String str) {
int res;
SQLiteDatabase db = getReadableDatabase();
Cursor cursor = db.query(MY_TABLE, new String[] { COLUMN_ID,
}, COLUMN_STRING + "=?",
new String[] { str }, null, null, null, null);
if ((cursor != null) && (cursor.getCount() > 0)) {
cursor.moveToFirst();
res = cursor.getInt(cursor.getColumnIndex(COLUMN_ID));
}
else {
res = NOT_EXIST;
}
if (cursor != null) {
cursor.close();
}
return res;
}
请注意,我在此示例中使用了许多常量,因为这样更容易,更不容易出错。在这种情况下,常量是:
MY_TABLE
- 字符串,表名COLUMN_ID
- 字符串,ID列的名称COLUMN_STRING
- 字符串,包含要比较的字符串的列的名称NOT_EXIST
- int,-1,表示找不到它。