Database 为什么我会看到这样的错误:编译时没有这样的列:number(代码1)::从Users_表中删除,其中number=?

Database 为什么我会看到这样的错误:编译时没有这样的列:number(代码1)::从Users_表中删除,其中number=?,database,sqlite,listview,logcat,Database,Sqlite,Listview,Logcat,当我试图从ListView和数据库中删除一个项目时,我遇到了这个错误,我如何解决它?非常感谢。 方法如下: public int deleteSelectedItem(String number) { SQLiteDatabase db = this.getWritableDatabase(); int result = db.delete( DB_TABLE, "number = ?", new String[] {number} ); return result;

当我试图从ListView和数据库中删除一个项目时,我遇到了这个错误,我如何解决它?非常感谢。 方法如下:

public int deleteSelectedItem(String number) {
    SQLiteDatabase db = this.getWritableDatabase();
    int result = db.delete( DB_TABLE, "number = ?", new String[] {number} );
    return result;
    }
这是电话:

 userlist.setOnItemLongClickListener( new AdapterView.OnItemLongClickListener() {
        @Override
        public boolean onItemLongClick (AdapterView<?> arg0, View view, final int position, long arg3) {
            AlertDialog.Builder alertDialog = new AlertDialog.Builder( MainActivity.this );
            alertDialog.setTitle( "Elimina" );
            alertDialog.setMessage( listItem.get( position ) );
            alertDialog.setPositiveButton( "Elimina", new DialogInterface.OnClickListener() {
                @Override
                public void onClick (DialogInterface dialog, int which) {
                 db.deleteSelectedItem( listItem.get( position ) );
                  }
            } );
            alertDialog.show();
            return true;
        }
    } );
userlist.setOnItemLongClickListener(新的AdapterView.OnItemLongClickListener(){
@凌驾
公共布尔值长单击(AdapterView arg0,视图,最终整型位置,长arg3){
AlertDialog.Builder AlertDialog=新建AlertDialog.Builder(MainActivity.this);
alertDialog.setTitle(“Elimina”);
setMessage(listItem.get(position));
alertDialog.setPositiveButton(“Elimina”,新的DialogInterface.OnClickListener(){
@凌驾
public void onClick(DialogInterface dialog,int which){
db.deleteSelectedItem(listItem.get(position));
}
} );
alertDialog.show();
返回true;
}
} );
日志:

android.database.sqlite.SQLiteException: no such column: number (code 1): , while compiling: DELETE FROM Users_Table WHERE number = ?
    at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
    at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:887)
    at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:498)
    at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
    at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
    at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
    at android.database.sqlite.SQLiteDatabase.delete(SQLiteDatabase.java:1496)
    at com.example.listviewsqlite.DatabaseHelper.deleteSelectedItem(DatabaseHelper.java:54)
    at com.example.listviewsqlite.MainActivity$2$1.onClick(MainActivity.java:68)
    at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:163)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:148)
    at android.app.ActivityThread.main(ActivityThread.java:5417)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
android.database.sqlite.SQLiteException:没有这样的列:number(代码1):,编译时:从Users_表中删除,其中number=?
位于android.database.sqlite.SQLiteConnection.nativePrepareStatement(本机方法)
位于android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:887)
位于android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:498)
位于android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
位于android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:58)
位于android.database.sqlite.SQLiteStatement.(SQLiteStatement.java:31)
位于android.database.sqlite.SQLiteDatabase.delete(SQLiteDatabase.java:1496)
在com.example.listviewsqlite.DatabaseHelper.deleteSelectedItem(DatabaseHelper.java:54)上
位于com.example.listviewsqlite.MainActivity$2$1.onClick(MainActivity.java:68)
位于com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:163)
位于android.os.Handler.dispatchMessage(Handler.java:102)
位于android.os.Looper.loop(Looper.java:148)
位于android.app.ActivityThread.main(ActivityThread.java:5417)
位于java.lang.reflect.Method.invoke(本机方法)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run上(ZygoteInit.java:726)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

错误很明显:表
Users\u表中没有列
number
。如果在第一次运行应用程序后在表中添加了“按代码”列,请从设备中卸载该应用程序,以便删除数据库并重新运行以重新创建数据库和表。还请检查清单中的以下行:
android:allowBackup=“true”
。如果存在,将其更改为android:allowBackup=“false”
,然后重复卸载并重新运行。如果问题没有解决,请尝试使用干净的设备。也只是为了确保发布表的create语句。谢谢。我卸载了,错误不再出现,但我有另一个问题。现在,该项将从数据库中删除,但不会从ListView中删除。我曾想过用“notifyDataSetChanged()”解决这个问题,但我不知道要连接哪个元素,我尝试用“adapter.notifyDataSetChanged()”,但它不起作用。ListView包含从表加载到适配器的项。从表中删除行时,不会同时从适配器中删除该行。将其从附加到适配器的列表中删除,然后调用notifyDataSetChanged()。错误很明显:表
用户\u表
中没有列
number
。如果在第一次运行应用程序后在表中添加了“按代码”列,请从设备中卸载该应用程序,以便删除数据库并重新运行以重新创建数据库和表。还请检查清单中的以下行:
android:allowBackup=“true”
。如果存在,将其更改为android:allowBackup=“false”
,然后重复卸载并重新运行。如果问题没有解决,请尝试使用干净的设备。也只是为了确保发布表的create语句。谢谢。我卸载了,错误不再出现,但我有另一个问题。现在,该项将从数据库中删除,但不会从ListView中删除。我曾想过用“notifyDataSetChanged()”解决这个问题,但我不知道要连接哪个元素,我尝试用“adapter.notifyDataSetChanged()”,但它不起作用。ListView包含从表加载到适配器的项。从表中删除行时,不会同时从适配器中删除该行。将其从附加到适配器的列表中删除,然后调用notifyDataSetChanged()。