1

テーブル「ログ」があります:

private static final String DATABASE_CREATE = 
            "create table if not exists logs (_id integer primary key autoincrement, "+ "date datetime, city text, " + "type text, log text, nick text);";

ログを挿入する方法:

public long insertLog(String city, int type, String log, String nick) {

        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date = new Date();

        ContentValues initialValues = new ContentValues();

        initialValues.put(KEY_DATE, dateFormat.format(date));
        initialValues.put(KEY_CITY, city);
        initialValues.put(KEY_TYPE, type);
        initialValues.put(KEY_LOG, log);
        initialValues.put(KEY_NICK, nick);

        return db.insert(DATABASE_TABLE, null, initialValues);

    }

ログを挿入しようとするたびに、例外は発生しません。メソッドは毎回「1」を返します。しかし、sqliteviewer でテーブルを見ると、テーブルが空であることがわかります。この問題の原因は何ですか?

4

2 に答える 2

2

create table このように

private static final String DATABASE_CREATE = 
            "create table if not exists logs (_id integer primary key autoincrement,date text, city text, type text, log text, nick text);";

& このように挿入

public long insertLog(String city, int type, String log, String nick) {

        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date = new Date();

        ContentValues initialValues = new ContentValues();

         // convert date to string
        String dateString = dateFormat.format(date);

        initialValues.put(KEY_DATE,dateString);
        initialValues.put(KEY_CITY, city);
        initialValues.put(KEY_TYPE, type);
        initialValues.put(KEY_LOG, log);
        initialValues.put(KEY_NICK, nick);

        return db.insert(DATABASE_TABLE, null, initialValues);

    }

編集:

このメソッドを呼び出します

         db.open();
         db.insertLog(....);
         db.close();
于 2013-02-21T15:46:56.020 に答える