在新realease中添加新表时出错:android.database.sqlite.SQLiteException:没有这样的表
在我的android应用程序中,我在初始版本中使用了SQLite数据库。我现在需要在应用程序中创建一个新表。我在onCreate()和onUpgrate()中给出了create语句,但这两个语句都没有写入,我得到了错误:在新realease中添加新表时出错:android.database.sqlite.SQLiteException:没有这样的表,android,android-sqlite,Android,Android Sqlite,在我的android应用程序中,我在初始版本中使用了SQLite数据库。我现在需要在应用程序中创建一个新表。我在onCreate()和onUpgrate()中给出了create语句,但这两个语句都没有写入,我得到了错误: android.database.sqlite.SQLiteException: no such table 我试了,试了…catch()也不起作用。 请给我一个解决方案。通过搜索错误行,您可以找到有关stackoverflow的其他已解决问题 看看:可能是因为您的表已经创建
android.database.sqlite.SQLiteException: no such table
我试了,试了…catch()也不起作用。
请给我一个解决方案。通过搜索错误行,您可以找到有关stackoverflow的其他已解决问题
看看:可能是因为您的表已经创建了。。。。使用此代码尝试一个新的测试应用程序(适用于我) 制作一个只包含一个创建表格按钮的测试应用程序
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn = (Button) findViewById(R.id.button1);
btn.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
SQLiteDatabase objConnection=openOrCreateDatabase("database_name",MODE_PRIVATE,null);
objConnection.execSQL("Create Table IF NOT EXISTS table_name(id INTEGER primary Key AUTOINCREMENT, name Varchar(200))");
objConnection.close();
Toast.makeText(getApplicationContext(), "db created", Toast.LENGTH_SHORT).show();
}
});
}
您是否设置了数据库版本?据我所知,如果旧的db版本小于新的db版本,onUpgrade()将调用添加一些代码。然后,只有我们可以确定是什么错误。感谢马杜山,设置新的db版本解决了这个问题。