Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
';没有此类列';android中SQLLite中的异常_Android_Sqlite - Fatal编程技术网

';没有此类列';android中SQLLite中的异常

';没有此类列';android中SQLLite中的异常,android,sqlite,Android,Sqlite,我正在尝试实现一种功能,如果应用程序的用户以前登录过,则在登录屏幕上会显示一个按钮。如果他/她以前从未登录过,则登录屏幕中的按钮将隐藏。 我要做的是,当用户第一次登录时,字符串“LoggedIn”存储在我的数据库表中,从这里我可以检查用户以前是否登录过,并决定是否在登录屏幕上显示该按钮 为此,我创建了一个表“LOGGED_IN_STATUS”,并且 他做了以下工作: 将表创建为: private final String LOGGED_IN_STATUS_TABLE_CREATE = "cre

我正在尝试实现一种功能,如果应用程序的用户以前登录过,则在登录屏幕上会显示一个按钮。如果他/她以前从未登录过,则登录屏幕中的按钮将隐藏。 我要做的是,当用户第一次登录时,字符串“LoggedIn”存储在我的数据库表中,从这里我可以检查用户以前是否登录过,并决定是否在登录屏幕上显示该按钮

为此,我创建了一个表“LOGGED_IN_STATUS”,并且 他做了以下工作:

将表创建为:

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