Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.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在数据库中找不到类任务_Android_Database_Sqlite_Datatable - Fatal编程技术网

为什么android在数据库中找不到类任务

为什么android在数据库中找不到类任务,android,database,sqlite,datatable,Android,Database,Sqlite,Datatable,我创建了一个android应用程序来显示数据库中的任务列表 这是我的数据库管理器…但我总是有一个错误,告诉我数据库中没有表任务 public class DbaseManager extends SQLiteOpenHelper { private DbaseManager mDbHelper; private SQLiteDatabase mDb; public static final String DB_NAME = "SI.db"; public static final

我创建了一个android应用程序来显示数据库中的任务列表 这是我的数据库管理器…但我总是有一个错误,告诉我数据库中没有表任务

public class DbaseManager extends SQLiteOpenHelper {
    private DbaseManager mDbHelper;
    private SQLiteDatabase mDb;
public static final String DB_NAME = "SI.db";
public static final String DB_PATH = Environment.getExternalStorageDirectory() +"/SI/DB/";
//**********************************TABLE_MISSIONS**************************************
    private static final String TABLE_MISSIONS = "Missions";
    private static final String COL_ID_MISSION = "idMission";
    private static final int NUM_COL_ID_MISSION = 0;
    private static final String COL_NOM_MISSION = "nomMission";
    private static final int NUM_COL_NOM_MISSION = 1;   
    private static final String COL_DATE_MISSION = "dateMission";
    private static final int NUM_COL_DATE_MISSION = 2;  

    private static final String CREATE_MISSIONS = 
    "CREATE TABLE "        + TABLE_MISSIONS + " ("
    + COL_ID_MISSION       + " INTEGER PRIMARY KEY AUTOINCREMENT, " 
    + COL_NOM_MISSION      + " TEXT NOT NULL, "
    + COL_DATE_MISSION     + " TEXT NOT NULL);";
//**************************************************************** 
   public DbaseManager(Context context) {
            super(context, DB_NAME, null, 1);
            File folder = new File(Environment.getExternalStorageDirectory()
                    + "/SI/");
            if (!folder.exists()) {folder.mkdir();}
            File dbfolder = new File(Environment.getExternalStorageDirectory()
                    + "/SI/DB/");
            if (!dbfolder.exists()) {dbfolder.mkdir();}
            File photofolder = new File(Environment.getExternalStorageDirectory()
                    + "/SI/Pic/");
            if (!photofolder.exists()) {photofolder.mkdir();}
            }
public SQLiteDatabase openDataBase() throws SQLException {
    SQLiteDatabase dbRetour = null;
    try {
        dbRetour = SQLiteDatabase.openOrCreateDatabase(DB_PATH+ DB_NAME, null);
        dbRetour.execSQL(CREATE_POINTS);
        dbRetour.execSQL(CREATE_MISSIONS);
        dbRetour.execSQL(CREATE_RELEVEUR);
        } catch (Exception e) {}
    return dbRetour;

}
public void open(Context context) {
    mDbHelper = new DbaseManager(context);
    mDb = mDbHelper.getWritableDatabase();
    mDb = mDbHelper.openDataBase();

}
/**
 * Close the database
 */
@Override
public void close() {
        mDb.close();
    }
      public List<Missions> getAllMissions() {
            List<Missions> mission = new ArrayList<Missions>();

            Cursor cursor = mDb.query(DbaseManager.TABLE_MISSIONS, allMissions, null, null, null,null,null);

            cursor.moveToFirst();
            while (!cursor.isAfterLast()) {
                Missions missions = cursorToMissions(cursor);
                mission.add(missions);
              cursor.moveToNext();
            }
            // make sure to close the cursor
            cursor.close();
            return mission;
          }

          private Missions cursorToMissions(Cursor cursor) {
            Missions missions = new Missions(null, null);
            missions.setNomMission(cursor.getString(1));
            missions.setDateMission(cursor.getString(2));

            return missions;
          }

    @Override
    public void onCreate(SQLiteDatabase db) {
        // TODO Auto-generated method stub

    }

    @Override   
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // TODO Auto-generated method stub

    }

}
这是我将要展示的任务清单

public class MissionAct extends ListActivity {
      private DbaseManager datasource;
      @Override
      public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.addmission_activity);
        datasource = new DbaseManager(this);
        datasource.open(getBaseContext());
        List<Missions> values = datasource.getAllMissions();
        ArrayAdapter<Missions> adapter = new ArrayAdapter<Missions>(this,
                android.R.layout.simple_list_item_1, values);
            setListAdapter(adapter);
          }
}

是否记得更新清单文件以包含该活动?

是,该表未创建,因为您需要在onCreateSQLiteDatabase db方法中创建表

是,我这样做了,但编译时出错:选择idMission,NoMission,DateMissions FROM Missions SQLiteException:没有这样的表:Missions我创建OpenDataBase是为了测试数据库和表是否存在,如果存在,它会创建它们,并且在方法中打开我称之为==>所以不需要在创建时在内部创建表对不起,我以前在代码中没有看到这一点…我认为您在创建表时留下了空间将出现表_任务+否则表名任务我将更改它,但相同的问题意味着表未创建检查表是否已创建您将在该链接上获得答案
public class MissionAct extends ListActivity {
      private DbaseManager datasource;
      @Override
      public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.addmission_activity);
        datasource = new DbaseManager(this);
        datasource.open(getBaseContext());
        List<Missions> values = datasource.getAllMissions();
        ArrayAdapter<Missions> adapter = new ArrayAdapter<Missions>(this,
                android.R.layout.simple_list_item_1, values);
            setListAdapter(adapter);
          }
}
04-23 01:28:21.061: E/AndroidRuntime(12607): FATAL EXCEPTION: main
04-23 01:28:21.061: E/AndroidRuntime(12607): java.lang.RuntimeException: Unable to start activity ComponentInfo{tn.pfe.ybn.sigl/tn.pfe.ybn.sigl.MissionAct}: android.database.sqlite.SQLiteException: no such table: Missions: , while compiling: SELECT idMission, nomMission, dateMission FROM Missions
04-23 01:28:21.061: E/AndroidRuntime(12607): Caused by: android.database.sqlite.SQLiteException: no such table: Missions: , while compiling: SELECT idMission, nomMission, dateMission FROM Missions