0

我第一次在 SQLite 中工作,我的数据库有下一个代码:

public class SqlLiteDataBase extends SQLiteOpenHelper{
String sqlCreate = "CREATE TABLE lol (code INTEGER, name TEXT)";

public SqlLiteDataBase(Context context, String name, CursorFactory factory, int version) {
    super(context, name, factory, version);
}

@Override
public void onCreate(SQLiteDatabase db) {
    db.execSQL(sqlCreate);
}

@Override
public void onUpgrade(SQLiteDatabase db, int versionAnterior, int versionNueva) {
    db.execSQL("DROP TABLE IF EXISTS lol");
    db.execSQL(sqlCreate);
}}

然后我实例化该类并尝试向数据库添加一些内容:

SqlLiteDataBase sql = new SqlLiteDataBase(this, "DBlol", null, 1);
    SQLiteDatabase db = sql.getWritableDatabase();
    if(db != null)
    {
        int code = 1;
        String name = "test";
        db.execSQL("INSERT INTO lol (code, name) " + "VALUES (" + code + ", '" + name +"')");
        db.close();
    }

但是什么都没有添加!假设是手机中 data/... 的一个文件,但文件夹是空的,我尝试使用 DDMS 了解发生了什么,但没有显示任何内容,这是怎么回事?这是权限问题吗?这是我的权限:

<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />

谢谢你的时间

4

2 回答 2

1

我认为您在 sqlCreate 字符串中忘记了分号。

String sqlCreate = "CREATE TABLE lol (code INTEGER, name TEXT);";
于 2012-06-11T18:14:54.850 回答
0

尝试使用 this"+ name +"而不是 this '" + name +"'。我认为不需要'变量。
或者,尝试使用以下标准方法。

 public long createEntry(String code, String name) {
    ContentValues initialValues = new ContentValues();
    initialValues.put("code", code);
    initialValues.put("name", name);

    return db.insert("lol", null, initialValues);
}

有关数据库相关事情的更多帮助,我建议这个

于 2012-06-11T18:43:03.897 回答