Android无法插入SQLite3 DB

时间:2013-01-20 07:12:30

标签: android sql sqlite

我试图在android上插入一些数据和SQLite DB,但下面的代码不起作用。任何人都可以发现这个问题。

db = this.openOrCreateDatabase("data_7.db", 0, null);
db.execSQL("CREATE TABLE IF NOT EXISTS 'group' (my_id TEXT NOT NULL, my_key TEXT NOT NULL)");
db.execSQL("INSERT INTO 'group' (my_id, my_key) VALUES ('abc', '123')");
db.close();

运行代码后,我从仿真器中提取出SQLite文件并使用SQLite GUI查看器打开它,表已创建但未插入数据。

注意:

  • 我整天搜索过这个网站,找不到了 这个问题的合适答案
  • 我想在没有辅助方法的帮助下这样做 。插入()。即。我需要使用纯SQL

2 个答案:

答案 0 :(得分:0)

尝试这种方式:

"INSERT INTO group (my_id, my_key) " + "VALUES ('" + field_one + "', '" + field_two + "')";

答案 1 :(得分:0)

你必须在Dababase类中找到的方法onCreate()中创建表,你必须像这样构建:

public class Database extends SQLiteOpenHelper
{
    public static final String DB_NAME="YourDBName";
    public static final int VERSION=1;
    Context context=null;
    public Database(Context context) 
    {
        super(context, DB_NAME, null, VERSION);
        this.context=context;
    }
    @Override
    public void onCreate(SQLiteDatabase db) 
    {
        try
        {
            String sql="CREATE TABLE group(my_id TEXT NOT NULL PRIMARY KEY, my_key TEXT NOT NULL)";
            String insert="INSERT INTO group VALUES('abc','123');";
            db.execSQL(sql);     
            db.execSQL(insert);  
        }
        catch(Exception e)
        {
            Log.d("Exception", e.toString());
        }
    }
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) 
    {
        db.execSQL("DROP TABLE IF EXISTS group");
        onCreate(db);
    }
}

确保删除旧数据库或将版本更改为2以执行查询。 如果您需要执行此查询,则需要编写:

Database db=new Database();
SQLiteDatabasse read=db.getReadableDatabase();