Java Can';t使用ContentValues.insert()将行添加到数据库Android Studio(SQLiteLog:(1)没有这样的表:…)
我是Java和Android Studio的新手。我目前正在尝试创建一个待办事项列表应用程序。为此,我需要将用户的输入存储到数据库中。但是,我可以毫无问题地创建数据库和表。但每次我尝试向数据库中添加新行时,都会发生错误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: ==
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
insideDatabaseHandler
String database_table = "CREATE TABLE test_database(ID INT NOT NULL, TASK INT NOT NULL, STATE INT NOT NULL)";