1

我正在尝试将一些数据插入到 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 查看器打开它,创建了表但没有插入数据。

笔记:

  • 我在这个网站上搜索了一整天,找不到这个问题的合适答案
  • 我想在没有 .insert() 等辅助方法的帮助下做到这一点。IE。我需要使用纯 SQL
4

2 回答 2

0

试试这种方式:

"INSERT INTO group (my_id, my_key) " + "VALUES ('" + field_one + "', '" + field_two + "')";
于 2013-01-20T07:54:45.900 回答
0

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

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();
于 2013-01-20T18:08:37.247 回答