为了账号安全,请及时绑定邮箱和手机立即绑定

Android Studio Sqlite 数据库

Android Studio Sqlite 数据库

守着星空守着你 2021-12-10 15:32:58
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)");

从您测试它的模拟器/设备卸载应用程序,以便删除数据库并再次运行。


查看完整回答
反对 回复 2021-12-10
?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

试试这个来创建表。

在下面的查询中,EXISTSTable-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);");



查看完整回答
反对 回复 2021-12-10
?
跃然一笑

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


查看完整回答
反对 回复 2021-12-10
  • 3 回答
  • 0 关注
  • 171 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信