【问题标题】:check if table is empty, if not empty update field sqllite android?检查表是否为空,如果不是空更新字段sqlite android?
【发布时间】:2016-01-07 01:01:19
【问题描述】:

我正在学习 sqllite for android,但我无法理解。 我这样创建数据库处理程序:

public class DatabaseHandler extends SQLiteOpenHelper {
    private static final String DATABASE_NAME = "BookMyFitManager";
    private static final int DATABASE_VERSION = 1;
    private static final String TABLE_LANGUAGE = "language";
    // Contacts Table Columns names
    private static final String LANGUAGE_ID = "languageid";
    public DatabaseHandler(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }
    // Creating Tables
    @Override
    public void onCreate(SQLiteDatabase db) {
        String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_LANGUAGE + "("
                + LANGUAGE_ID + " INTEGER PRIMARY KEY"+ ")";
        db.execSQL(CREATE_CONTACTS_TABLE);
    }
    // Upgrading database
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // Drop older table if existed
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_LANGUAGE);

        // Create tables again
        onCreate(db);
    }
    void addLanguage(String language) {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues values = new ContentValues();
        values.put(LANGUAGE_ID, language);
        // Inserting Row
        db.insert(TABLE_LANGUAGE, null, values);
        db.close();
    }
    public int updateLanguage(String language) {
        SQLiteDatabase db = this.getWritableDatabase();

        ContentValues values = new ContentValues();
        values.put(LANGUAGE_ID, language);

        // updating row
        return db.update(TABLE_LANGUAGE, values, LANGUAGE_ID + " = ?",
                new String[] { String.valueOf(language) });
    }
    public boolean checkForTables(){

        SQLiteDatabase db = this.getWritableDatabase();
        Cursor cursor = db.rawQuery("SELECT COUNT(*) FROM " +TABLE_LANGUAGE, null);

        if(cursor != null){

            cursor.moveToFirst();

            int count = cursor.getInt(0);

            if(count > 0){
                return true;
            }

            cursor.close();
        }
        return false;
    }
}

我把这个放在活动中:

DatabaseHandler db = new DatabaseHandler(this);
db.checkForTables();

但是没有用。 基本是我创建了一个切换按钮,当它打开时它发送 1 作为参数,当它关闭时它发送 2 作为参数。之后,我想将参数作为 language_id(上面代码 addlanguage 或 updatelanguage 上的字符串语言)发送到数据库。

如何检查表是否为空?如果表不为空,如何更新? (来自活动)。

如何在另一个活动中调用 LANGUAGE_ID?使用下面的代码?

db.openDataBase();
final String lang_id = db.getLanguageid();
db.close();

【问题讨论】:

    标签: android sqlite


    【解决方案1】:

    在 checkForTables() 中必须是
    SQLiteDatabase db = this.getReadableDatabase();

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-21
      • 2011-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-11
      相关资源
      最近更新 更多