Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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 DROP表在sqlite中不起作用_Android_Sqlite_Drop Table - Fatal编程技术网

Android DROP表在sqlite中不起作用

Android DROP表在sqlite中不起作用,android,sqlite,drop-table,Android,Sqlite,Drop Table,我尝试以编程方式删除表,但在logcat中未显示任何错误,但没有任何结果: 下面是我的数据库助手类: public class database1 extends SQLiteOpenHelper { private static final String DB_Name="database"; private static final int DB_Version=1; private static final String tbl_arrival1="arrival1

我尝试以编程方式删除表,但在logcat中未显示任何错误,但没有任何结果:

下面是我的数据库助手类:

public class database1 extends SQLiteOpenHelper
{
    private static final String DB_Name="database";
    private static final int DB_Version=1;
    private static final String tbl_arrival1="arrival1";
    private static final String STRING_CREATE1 = "CREATE TABLE IF NOT EXISTS "+tbl_arrival1
            +" (_f_id INTEGER PRIMARY KEY AUTOINCREMENT, "
            +"f_date TEXT,"
            +"o_rder NUMERIC,"
            +"rem_com TEXT);";
    public database1 (Context ctx)
    {
        super(ctx,DB_Name,null,DB_Version);
    }
    @Override
    public void onCreate(SQLiteDatabase database) {
        databaseQuery.onCreate(database);
      }
    public static class databaseQuery 
    {
        public static void onCreate(SQLiteDatabase database)
        {   
            database.execSQL("DROP TABLE IF EXISTS "+tbl_arrival1);
            database.execSQL(STRING_CREATE1);
        }
    }
}
我在内容提供程序中使用此数据库帮助程序:

database1 DBHelper ;
public Uri insert(Uri uri, ContentValues values) 
    {
        long row_id;
        SQLiteDatabase sqlDB = DBHelper.getWritableDatabase();
        row_id=sqlDB.insert(tbl_arrival1, null, values);
        if(row_id>0)
        {
            Uri _uri = ContentUris.withAppendedId(CONTENT_URI, row_id);
            getContext().getContentResolver().notifyChange(_uri, null);
            return _uri;
        }
        throw new SQLException("Failed to insert into "+uri);
    }
问题是,查询删除表不工作

所有建议和答案将不胜感激


谢谢

onCreate
在创建数据库时只工作一次一旦创建了数据库,如果对旧版本进行了任何更改,您应该使用
onUpgrade()
删除表

编辑
您的代码似乎很好。您正在调用DROP TABLE,然后再次创建。您是如何检查升降台不工作的?

我知道我有点晚了,但这个问题与我有关。在我的例子中,我试图在一个查询中删除多个表。e

drop table if exists table_name1;
drop table if exists table_name2;
drop table if exists table_name3;

所以android实现的
execSQL()
只执行单个sql语句

你有没有尝试过在OnUpdate方法中调用drop table?你能给我一个关于使用onUpgrade()的教程链接吗!我从来没有试过。。感谢对我不起作用,我尝试在onUpgrade()中删除表,但没有结果,表保留了旧数据。我通过将断点放在sqlExec()方法的后面进行检查,然后将数据库文件复制到我的计算机并在sqlite查看器程序中打开它。最重要的是,我尝试在同一个数据库上执行相同的sql查询,结果成功了!这张桌子上还有我的英雄!我一直在寻找一个我的查询无法执行的原因,终于找到了一个有答案的人。您可能认为他们会让execSQL为多个查询抛出异常或其他东西。