&引用;没有此类表格错误“;尝试显示SQLite数据库时

&引用;没有此类表格错误“;尝试显示SQLite数据库时,sqlite,Sqlite,我试图在活动put中显示我的SQlite数据库,它告诉我“没有这样的表:sfdnull”。我知道该表存在,因为我可以在DDMS上看到它。下面是我的dbhelper类和ViewProfile类的代码,用于显示表“sfd”。我希望有人能给我一些建议 public class dbhelper extends SQLiteOpenHelper { public static final String DATABASE_NAME = "swimmers"; public static

我试图在活动put中显示我的SQlite数据库,它告诉我“没有这样的表:sfdnull”。我知道该表存在,因为我可以在DDMS上看到它。下面是我的dbhelper类和ViewProfile类的代码,用于显示表“sfd”。我希望有人能给我一些建议

public class dbhelper extends SQLiteOpenHelper {

    public static final String DATABASE_NAME = "swimmers";
    public static final String TABLE_SWIMMERS = "sfd";

    public static final String C_ID = "id";
    public static final String NAME = "name";
    public static final String TEAM = "team";
    public static final String NOTES = "notes";

    public static final int VERSION = 1;

    public dbhelper(Context context)
    {
        super(context, DATABASE_NAME, null, VERSION);
    }

    @Override
    public void onCreate (SQLiteDatabase db) 
    {
        String createdb = "create table " + TABLE_SWIMMERS + "("
                + C_ID + " integer primary key autoincrement, "
                + NAME + " text, "
                + TEAM + " text, "
                + NOTES + " text); ";

        db.execSQL(createdb);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) 
    {
        db.execSQL("drop table " + TABLE_SWIMMERS);
        onCreate(db);
    }

    //add new entry
    void addSwimmer(Swimmer swimmer){

        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues values = new ContentValues();

        values.put(NAME, swimmer.getname());
        values.put(TEAM, swimmer.getteam());
        values.put(NOTES, swimmer.getnotes());

        db.insert(TABLE_SWIMMERS, null, values);
        db.close();
    }

    //Getting single swimmer
    Swimmer getSwimmer(int id){
        SQLiteDatabase db = this.getReadableDatabase();

        Cursor cursor = db.query(TABLE_SWIMMERS, new String[] { C_ID, NAME, TEAM, NOTES}, C_ID + "=?",
                new String[] { String.valueOf(id) }, null, null, null, null);
        if (cursor !=null)
            cursor.moveToFirst();

        Swimmer swimmer = new Swimmer (Integer.parseInt(cursor.getString(0)), 
                cursor.getString(1), cursor.getString(2), null);
        return swimmer;
    }

    public int updateSwimmer(Swimmer swimmer){
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues values = new ContentValues();

        values.put(NAME, swimmer.getname());
        values.put(TEAM, swimmer.getteam());
        values.put(NOTES, swimmer.getnotes());

        return db.update(TABLE_SWIMMERS, values, C_ID + " = ?", new String[] { String.valueOf(swimmer.getID()) });        
    }

    //delete single contact
    public void deleteSwimmer(Swimmer swimmer){
        SQLiteDatabase db = this.getWritableDatabase();
        db.delete(TABLE_SWIMMERS, C_ID + " = ?", new String[] { String.valueOf(swimmer.getID()) });        
        db.close();
    }

    //get contacts count
    public int getSwimmersCount(){
        String countQuery = "SELECT  * FROM " + TABLE_SWIMMERS;
        SQLiteDatabase db = this.getReadableDatabase();
        Cursor cursor = db.rawQuery(countQuery, null);
        cursor.close();
        return cursor.getCount();
    }

    public List<Swimmer> getAllSwimmers() {
        List<Swimmer> swimmerList = new ArrayList<Swimmer>();
        // Select All Query
        String selectQuery = "SELECT  * FROM " + TABLE_SWIMMERS;

        SQLiteDatabase db = this.getWritableDatabase();
        Cursor cursor = db.rawQuery(selectQuery, null);

        // looping through all rows and adding to list
        if (cursor.moveToFirst()) {
            do {
                Swimmer swimmer = new Swimmer();
                swimmer.setID(Integer.parseInt(cursor.getString(0)));
                swimmer.setname(cursor.getString(1));
                swimmer.setnotes(cursor.getString(2));
                // Adding swimmer to list
                swimmerList.add(swimmer);
            } while (cursor.moveToNext());
        }

        // return swimmer list
        return swimmerList;
    }

}

public class ViewSwimmerProfile extends ListActivity {

private ArrayList<String> results = new ArrayList<String>();
 private String TABLE_SWIMMERS = dbhelper.TABLE_SWIMMERS;
 private SQLiteDatabase newDB;

@Override
public boolean onCreateOptionsMenu(Menu menu) 
{       
        getMenuInflater().inflate(R.menu.activity_sfdmain, menu);
        return true;
    }

@Override
public void onCreate (Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    Log.i("viewProfileActivity", "Intent Text");
    setContentView(R.layout.viewprofile);
    openAndQueryDatabase();
    displayResultList();
}   

    private void displayResultList() {

                setListAdapter(new ArrayAdapter<String>(this,
                        android.R.layout.simple_list_item_1, results));
                getListView().setTextFilterEnabled(true);
         }

    private void openAndQueryDatabase() {
          try {
           dbhelper dbHelper = new dbhelper(this.getApplicationContext());
           newDB = dbHelper.getWritableDatabase();
           Cursor c = newDB.rawQuery("SELECT NAME, TEAM FROM " +
                TABLE_SWIMMERS +
                null, null);

              if (c != null ) {
               if  (c.moveToFirst()) {
                do {
                 String NAME = c.getString(c.getColumnIndex("NAME"));
                 String TEAM = c.getString(c.getColumnIndex("TEAM"));
                 results.add("NAME: " + NAME + ",TEAM: " + TEAM);
                }while (c.moveToNext());
               } 
              }   
          } catch (SQLiteException se ) {
                 Log.e(getClass().getSimpleName(), "Could not create or Open the database");
                } finally {
                 if (newDB != null) 
                  newDB.execSQL("DELETE FROM " + TABLE_SWIMMERS);
                  newDB.close();
                }

         }
}
public类dbhelper扩展了SQLiteOpenHelper{
公共静态最终字符串数据库\u NAME=“游泳者”;
公共静态最终字符串表;
公共静态最终字符串C_ID=“ID”;
公共静态最终字符串NAME=“NAME”;
公共静态最终字符串TEAM=“TEAM”;
公共静态最终字符串NOTES=“NOTES”;
公共静态最终int版本=1;
公共dbhelper(上下文)
{
super(上下文、数据库名称、null、版本);
}
@凌驾
public void onCreate(SQLiteDatabase db)
{
String createdb=“create table”+桌上游泳运动员+”(“
+C_ID+“整数主键自动递增,”
+名称+文本,“
+团队+“文本,”
+注释+“文本);”;
execSQL(createdb);
}
@凌驾
public void onUpgrade(SQLiteDatabase db,int-oldVersion,int-newVersion)
{
db.execSQL(“放下桌子”+桌子);
onCreate(db);
}
//添加新条目
游泳运动员{
SQLiteDatabase db=this.getWritableDatabase();
ContentValues=新的ContentValues();
value.put(NAME,swimber.getname());
values.put(团队、游泳者.getteam());
value.put(NOTES,swimer.getnotes());
db.insert(表_,null,值);
db.close();
}
//单人游泳
游泳运动员(国际id){
SQLiteDatabase db=this.getReadableDatabase();
Cursor Cursor=db.query(TABLE_-sw泳者,新字符串[]{C_-ID,NAME,TEAM,NOTES},C_-ID+“=?”,
新字符串[]{String.valueOf(id)},null,null,null,null);
如果(光标!=null)
cursor.moveToFirst();
游泳运动员游泳运动员=新游泳运动员(Integer.parseInt(cursor.getString(0)),
cursor.getString(1),cursor.getString(2),null);
返回游泳运动员;
}
公共int更新Wimmer(游泳运动员){
SQLiteDatabase db=this.getWritableDatabase();
ContentValues=新的ContentValues();
value.put(NAME,swimber.getname());
values.put(团队、游泳者.getteam());
value.put(NOTES,swimer.getnotes());
返回db.update(TABLE_-SWIMMERS,values,C_-ID+“=?”,新字符串[]{String.valueOf(swimmer.getID())});
}
//删除单个联系人
公众游泳者{
SQLiteDatabase db=this.getWritableDatabase();
db.delete(TABLE_SWIMMERS,C_ID+“=?”,新字符串[]{String.valueOf(swimmer.getID())});
db.close();
}
//获取联系人计数
公共int GetScont(){
String countQuery=“SELECT*FROM”+表\u游泳者;
SQLiteDatabase db=this.getReadableDatabase();
Cursor Cursor=db.rawQuery(countQuery,null);
cursor.close();
返回cursor.getCount();
}
公众名单{
List=newarraylist();
//选择所有查询
String selectQuery=“SELECT*FROM”+表格\u游泳者;
SQLiteDatabase db=this.getWritableDatabase();
Cursor Cursor=db.rawQuery(selectQuery,null);
//循环遍历所有行并添加到列表
if(cursor.moveToFirst()){
做{
游泳运动员=新游泳运动员();
setID(Integer.parseInt(cursor.getString(0));
setname(cursor.getString(1));
streamer.setnotes(cursor.getString(2));
//将游泳运动员加入名单
游泳运动员名单。添加(游泳运动员);
}while(cursor.moveToNext());
}
//返回游泳运动员名单
返回名单;
}
}
公共类ViewProfile扩展了ListActivity{
private ArrayList results=new ArrayList();
私人字符串TABLE_-swimers=dbhelper.TABLE_-swimers;
私有sqlitedatabasenewdb;
@凌驾
公共布尔onCreateOptions菜单(菜单)
{       
getMenuInflater().充气(R.menu.activity\u sfdmain,menu);
返回true;
}
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
Log.i(“viewProfileActivity”、“意向文本”);
setContentView(R.layout.viewprofile);
openAndQueryDatabase();
displayResultList();
}   
私有void显示结果列表(){
setListAdapter(新阵列适配器)(此,
android.R.layout.simple_list_item_1,results));
getListView().setTextFilterEnabled(true);
}
私有void openAndQueryDatabase(){
试一试{
dbhelper dbhelper=新的dbhelper(this.getApplicationContext());
newDB=dbHelper.getWritableDatabase();
游标c=newDB.rawQuery(“选择名称,团队自”+
游泳运动员+
空,空);
如果(c!=null){
if(c.moveToFirst()){
做{
字符串名称=c.getString(c.getColumnIndex(“名称”));
字符串团队=c.getString(c.getColumnIndex(“团队”);
结果。添加(“名称:“+NAME+”,团队:“+TEAM”);
}而(c.moveToNext());
} 
}   
}catch(sqlitese异常){
Log.e(getClass().getSimpleName(),“无法创建或打开数据库”);
}最后{
if(newDB!=null)
newDB.execSQL(“从”+表中删除”);
newDB.close();
}
}
}
Cursor c = newDB.rawQuery("SELECT NAME, TEAM FROM " +
     TABLE_SWIMMERS +
     null, null);