2012-07-21 45 views
0

以下是我用来更改表格但代码崩溃的代码。在android中更改表格代码...

我已经分别创建了这个dbupdateadapter类。记录被添加,但该列没有添加到同一个表

public class dbupdateadapter { 
    public static final String TABLE_MEMBERID="memberid"; 

    private static final String DATABASE_NAME="myfemmefab.db"; 
    private static final String TABLE_NAME="registeration"; 
    private static final int DATABASE_VERSION=2; 

    private static final String DATABASE_UPDATE="ALTER TABLE registeration ADD COLUMN(memberid TEXT);"; 

    private static Context context1; 

    private dbhelper1 helper1; 
    private SQLiteDatabase sdb1; 

    public dbupdateadapter(Context con){ 
    this.context1=con; 
helper1=new dbhelper1(context1); 
} 
public class dbhelper1 extends SQLiteOpenHelper{ 
public dbhelper1(Context context){ 
    super(context,DATABASE_NAME,null,DATABASE_VERSION); 
} 
@Override 
public void onCreate(SQLiteDatabase sdb1){ 
    sdb1.execSQL(DATABASE_UPDATE); 
} 
@Override 
    public void onUpgrade(SQLiteDatabase sdb1,int oldver,int newver){ 
     //android.util.Log.w("constants", "upgrading database will destroy the old data"); 
    if(newver>oldver){ 
     sdb1.execSQL(DATABASE_UPDATE); 
    } 

     //onCreate(sdb1); 
    } 
} 
public dbupdateadapter open() throws SQLException{ 
sdb1=helper1.getWritableDatabase(); 
return this; 
} 
void insertcoldata (String memberid){ 
ContentValues cv1=new ContentValues(); 
cv1.put(TABLE_MEMBERID, memberid); 
sdb1.insert(TABLE_NAME, null, cv1); 
} 
public void close(){ 
helper1.close(); 
} 
} 

回答

0

使用"ALTER TABLE registeration ADD memberid TEXT;";"ALTER TABLE registeration ADD COLUMN memberid TEXT;";你有语法错误。

你在哪里创建你的表?您正在执行onCreate()中的DATABASE_UPDATE

0

你应该知道,在

public void onCreate(SQLiteDatabase db){ ... } 

您应该创建tables,并与一些初始值填充它们和你没有在你的代码片段创建表。

upgrating你的表,你应该使用

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { ... } 

究竟从文档:

当数据库需要升级时调用。实施 应该使用此方法删除表,添加表或执行任何其他需要升级到新的模式版本的 。

也有看