public class DatabaseHelper extends SQLiteOpenHelper{ public static final String DATABASE_NAME = "Register.db"; public static final String TABLE_NAME = "particulars_table"; public static final String COL_1 = "ID"; public static final String COL_2 = "Email"; public static final String COL_3 = "Username"; public static final String COL_4 = "Password"; public DatabaseHelper(Context context){ super(context, DATABASE_NAME, null, 1); } @Override public void onCreate(SQLiteDatabase db) { //db.execSQL("CREATE TABLE IF NOT EXISTS" + TABLE_NAME + "(ID INTEGER PRIMARY KEY AUTOINCREMENT,EMAIL TEXT,USERNAME TEXT,PASSWORD TEXT)"); db.execSQL("CREATE TABLE IF NOT EXISTS (ID INTEGER PRIMARY KEY AUTOINCREMENT,Email VARCHAR, Username VARCHAR,Password VARCHAR);"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS" + TABLE_NAME); onCreate(db); } public boolean insertData(String Email, String Username, String Password){ SQLiteDatabase db = this.getWritableDatabase(); ContentValues contentValues = new ContentValues(); contentValues.put(COL_2,Email); contentValues.put(COL_3,Username); contentValues.put(COL_4,Password); long result = db.insert(TABLE_NAME,null,contentValues); if(result == -1) return false; else return true; }}我的项目中有此代码,但似乎无法将该表放入我的数据库中。当我在开发人员文件资源管理器中检查我的数据库时,该数据库已创建。我的代码有什么问题阻止它创建表格并从我的程序接受我的输入以保存详细信息吗?
3 回答
侃侃无极
TA贡献2051条经验 获得超10个赞
您注释的 CREATE 语句必须更改为:
"CREATE TABLE IF NOT EXISTS " + TABLE_NAME + " (ID INTEGER PRIMARY KEY AUTOINCREMENT,EMAIL TEXT,USERNAME TEXT, PASSWORD TEXT)"
你在 TABLE_NAME 之前没有空间,所以它产生了这个:CREATE TABLE IF NOT EXISTSparticulars_table
。
在onCreate()
改变db.execSQL()
这样的:
db.execSQL("CREATE TABLE IF NOT EXISTS " + TABLE_NAME + " (ID INTEGER PRIMARY KEY AUTOINCREMENT,EMAIL TEXT,USERNAME TEXT, PASSWORD TEXT)");
从您测试它的模拟器/设备卸载应用程序,以便删除数据库并再次运行。
qq_遁去的一_1
TA贡献1725条经验 获得超7个赞
试试这个来创建表。
在下面的查询中,EXISTS和Table-name之间没有空格,所以它是EXISTSTable名称。
db.execSQL("CREATE TABLE IF NOT EXISTS " + TABLE_NAME + " (ID INTEGER PRIMARY KEY AUTOINCREMENT,EMAIL TEXT,USERNAME TEXT,PASSWORD TEXT)");
或在此您还没有添加表名。
db.execSQL("CREATE TABLE IF NOT EXISTS TABLE_NAME (ID INTEGER PRIMARY KEY AUTOINCREMENT,Email VARCHAR, Username VARCHAR,Password VARCHAR);");
跃然一笑
TA贡献1826条经验 获得超6个赞
只需更改db.execSQL
为
db.execSQL("CREATE TABLE IF NOT EXISTS $TABLE_NAME (ID INTEGER PRIMARY KEY AUTOINCREMENT,Email VARCHAR, Username VARCHAR,Password VARCHAR);");
在$TABLE_NAME
将与您更换String TABLE_NAME = "particulars_table"
您提供SQLHelper
添加回答
举报
0/150
提交
取消