2012-06-11 96 views
0

我在SQLite的工作第一次,我有我的數據庫中的下一個代碼:無法創建SQLite數據庫的Android

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(); 
    } 

但是沒有添加任何東西!它假設是一個文件在cel數據/ ...但文件夾是空的,我嘗試使用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" /> 

感謝您的時間

回答

1

我想你忘記了你的sqlCreate串一個分號。

String sqlCreate = "CREATE TABLE lol (code INTEGER, name TEXT);"; 
+0

,並將logcat的顯示下一個錯誤:準備「INSERT INTO笑(當故障1(表笑沒有代號爲列)上0x15c008代碼,名稱)VALUES(1,'test')'。 –

+0

我想你提到了將你的帖子的代碼從西班牙語翻譯成英文。您是否翻譯過來以匹配原始列名稱?我只問,因爲當我測試代碼插入似乎工作正常。 – Nate

+0

是的,我做得很好,你怎麼知道代碼工作? –

0

嘗試使用此"+ name +"而不是此'" + 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); 
} 

對DB更多幫助相關的事情,我建議This