我第一次在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();
}
但没有添加任何内容!它假设是一个文件在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" />
感谢您的时间
答案 0 :(得分:1)
我认为你在sqlCreate字符串中忘记了一个分号。
String sqlCreate = "CREATE TABLE lol (code INTEGER, name TEXT);";
答案 1 :(得分: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);
}
有关数据库相关内容的更多帮助,我建议This