将行插入Sqlite DB(Android)

时间:2013-02-21 15:41:29

标签: android database sqlite sql-insert

我有表“日志”:

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查看我的表时,我看到它是空的。这个问题可能是什么原因?

2 个答案:

答案 0 :(得分: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();

答案 1 :(得分:0)

完整示例 here

DataBaseHelper 中定义基本配置后,使用 db 对象使用以下方法插入行

// method to insert a record in Table
public static String insertEntry(String user_name, String user_phone, String user_email)
{

    try {


        ContentValues newValues = new ContentValues();
        // Assign values for each column.
        newValues.put("user_name", user_name);
        newValues.put("user_phone", user_phone);
        newValues.put("user_email", user_email);

        // Insert the row into your table
        db = dbHelper.getWritableDatabase();
        long result=db.insert(TABLE_NAME, null, newValues);
        toast("User Info Saved! Total Row Count is "+getRowCount());
        db.close();

    }catch(Exception ex) {
    }
    return "ok";
}