Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.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
Java Can';t使用ContentValues.insert()将行添加到数据库Android Studio(SQLiteLog:(1)没有这样的表:…)_Java_Android_Sqlite_Android Sqlite - Fatal编程技术网

Java Can';t使用ContentValues.insert()将行添加到数据库Android Studio(SQLiteLog:(1)没有这样的表:…)

Java Can';t使用ContentValues.insert()将行添加到数据库Android Studio(SQLiteLog:(1)没有这样的表:…),java,android,sqlite,android-sqlite,Java,Android,Sqlite,Android Sqlite,我是Java和Android Studio的新手。我目前正在尝试创建一个待办事项列表应用程序。为此,我需要将用户的输入存储到数据库中。但是,我可以毫无问题地创建数据库和表。但每次我尝试向数据库中添加新行时,都会发生错误 D/DatabaseHandler: ===Inside DatabaseHandler constructor=== D/DatabaseHandler: ===Inside onCreate from DatabaseHandler=== D/MainActivity: ==

我是Java和Android Studio的新手。我目前正在尝试创建一个待办事项列表应用程序。为此,我需要将用户的输入存储到数据库中。但是,我可以毫无问题地创建数据库和表。但每次我尝试向数据库中添加新行时,都会发生错误

D/DatabaseHandler: ===Inside DatabaseHandler constructor===
D/DatabaseHandler: ===Inside onCreate from DatabaseHandler===
D/MainActivity: ==addToDatabase==
    /SQLiteLog: (1) no such table: test_database
    E/SQLiteDatabase: Error inserting STATE=14 TASK=13 ID  =1
                      android.database.sqlite.SQLiteException: no such table: test_database (code 1): , while compiling: INSERT INTO test_database(STATE,TASK,ID  ) VALUES (?,?,?)
创建数据库(DatabaseHandler)并创建表(onCreate()):

最后是我用于向数据库中添加新行的函数:

public int     addToDatabase(SQLiteDatabase access, String task) {
    Log.d(TAG, "==addToDatabase==");
    if (access.isOpen() == false) {
        Log.d(TAG, "[addToDatabase] Database is not Open");
        return (-1);
    }
    ContentValues   values = new ContentValues();

    values.put("ID  ", 1);
    values.put("TASK", 13);
    values.put("STATE", 14);
    access.insert("test_database", null, values);
    return (1);
我已经试着通过查看其他现有的帖子来解决这个问题。似乎这可能是因为数据库创建不正确。尽管如此,在创建数据库时,只有在我尝试添加新内容时,才会出现任何错误

我还读到它可能与数据库版本一起出现在报告中……但是,我真的不明白为什么……(我仍在查看官方文档)

有人能给我解释一下,告诉我如何解决这个问题吗? 谢谢:)

用这个

access.insert("task", null, values)
而不是这个

 access.insert("test_database", null, values);


如果已更新应用程序表名,请手动卸载应用程序,然后再次尝试运行。

您的表名显然错误。更改表创建查询

String database_table = "CREATE TABLE test_database(ID INT NOT NULL, TASK INT NOT NULL, STATE INT NOT NULL)";
这可能会帮助您

您可以编辑“DatabaseHandler”并运行项目,以便数据库中不会发生更改

我只是从应用程序中删除了数据,以便第一次打开 它为我们工作:


嘿,非常感谢,它工作得非常好。然而,我在互联网上寻找手动卸载我的应用程序,但没有发现任何有用的东西,你能顺便告诉我怎么做吗?谢谢我编辑了我的评论,但你可能没有注意到。你能告诉我如何手动卸载我的应用程序吗?谢谢:)@S7_0如果解决方案有效,则您不必卸载应用程序,否则,转到设置应用程序,查找应用程序管理器并查找您的应用程序,然后单击并选择卸载,或者根据您的android版本,如果您长时间单击应用程序图标,将弹出卸载功能,很高兴为已经运行的应用程序更改表名,然后手动卸载该应用程序,或者您必须将数据库版本值增加1,以使用
onUpdate
inside
DatabaseHandler
String database_table = "CREATE TABLE test_database(ID INT NOT NULL, TASK INT NOT NULL, STATE INT NOT NULL)";