';没有此类列';android中SQLLite中的异常
我正在尝试实现一种功能,如果应用程序的用户以前登录过,则在登录屏幕上会显示一个按钮。如果他/她以前从未登录过,则登录屏幕中的按钮将隐藏。 我要做的是,当用户第一次登录时,字符串“LoggedIn”存储在我的数据库表中,从这里我可以检查用户以前是否登录过,并决定是否在登录屏幕上显示该按钮 为此,我创建了一个表“LOGGED_IN_STATUS”,并且 他做了以下工作: 将表创建为:';没有此类列';android中SQLLite中的异常,android,sqlite,Android,Sqlite,我正在尝试实现一种功能,如果应用程序的用户以前登录过,则在登录屏幕上会显示一个按钮。如果他/她以前从未登录过,则登录屏幕中的按钮将隐藏。 我要做的是,当用户第一次登录时,字符串“LoggedIn”存储在我的数据库表中,从这里我可以检查用户以前是否登录过,并决定是否在登录屏幕上显示该按钮 为此,我创建了一个表“LOGGED_IN_STATUS”,并且 他做了以下工作: 将表创建为: private final String LOGGED_IN_STATUS_TABLE_CREATE = "cre
private final String LOGGED_IN_STATUS_TABLE_CREATE = "create table "+ LOGGED_IN_STATUS + "(" + LOGGED_STATUS + " text default null);";
在“onCreate()”中将其称为:
将值插入其中,如下所示:
public String insertIntoLoggedStatus(String status)
{
SQLiteDatabase db = this.getWritableDatabase();
db.execSQL("INSERT INTO " + LOGGED_IN_STATUS + "("+LOGGED_STATUS+") VALUES(" + status+");");
return status;
}
那么,
在我的'LoginScreen.java'活动中调用“InsertionLoggedStatus()”,如下所示:
loggedInStatus=database.insertIntoLoggedStatus("LoggedIn");
我得到的例外是:
android.database.sqlite.SQLiteException:没有这样的列:LoggedIn
(代码1):,编译时:插入LoggedInStatus(LoggedStatus)
数值(LoggedIn)
我已经尝试解决这个问题两天了,但是没有成功。
请帮忙 由于状态为字符串,因此必须用
单引号包装
db.execSQL("INSERT INTO " + LOGGED_IN_STATUS + "("+LOGGED_STATUS+") VALUES('" + status+"'));
试试下面的代码
public String insertIntoLoggedStatus(String status){
ContentValues values = new ContentValues();
values.put(LOGGED_STATUS, status);
db.insert(LOGGED_IN_STATUS, null, values);
}
@Lemmy可能重复除了Suraj answer,我想补充一点,您可以在Android Studio中通过查看=>Tools Windows=>Device File Explorer来调试此问题。。在data=>data下,你可以找到你的包名,里面有“数据库”,你可以在其中检查你的.db文件。您将能够在Sqlite的DB浏览器中查看表和记录。这里是链接。我希望这对你有帮助。谢谢
public String insertIntoLoggedStatus(String status){
ContentValues values = new ContentValues();
values.put(LOGGED_STATUS, status);
db.insert(LOGGED_IN_STATUS, null, values);
}