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