Hi, I need to insert a new table in my existing database. The following code will show you my database. Can you help me to insert a new table with a single field of type String. Obviously I need the input methods, query, and delete. Please help me, every time I try to only add a new table in this database are born the following errors:

The cursor is not initialized.
The column X does not exist.

etc. ...

Please help me ^ ^

public class MyDatabase {

SQLiteDatabase mDb;
DbHelper mDbHelper;
Context mContext;
private static final String DB_NAME="tutorialdb";//nome del db
private static final int DB_VERSION=2; //numero di versione del nostro db
String colums[] = {ProductsMetaData.PRODUCT_PRICE_KEY};

public MyDatabase(Context ctx){
mContext=ctx;
mDbHelper=new DbHelper(ctx, DB_NAME, null, DB_VERSION); //quando istanziamo questa classe, istanziamo anche l'helper (vedi sotto)
}

public void open(){ //il database su cui agiamo รจ leggibile/scrivibile
mDb=mDbHelper.getWritableDatabase();

}

public void close(){ //chiudiamo il database su cui agiamo
mDb.close();
}


//i seguenti 2 metodi servono per la lettura/scrittura del db. aggiungete e modificate a discrezione

public void insertProduct(String name,int price){ //metodo per inserire i dati
ContentValues cv=new ContentValues();
cv.put(ProductsMetaData.PRODUCT_NAME_KEY, name);
cv.put(ProductsMetaData.PRODUCT_PRICE_KEY, price);
mDb.insert(ProductsMetaData.PRODUCTS_TABLE, null, cv);
}

public int deleteAll(){
return mDb.delete(ProductsMetaData.PRODUCTS_TABLE, null, null);
}

public void update(String name, int price){
ContentValues values = new ContentValues();
values.put(ProductsMetaData.PRODUCT_NAME_KEY, name);
values.put(ProductsMetaData.PRODUCT_PRICE_KEY, price);
mDb.delete(ProductsMetaData.PRODUCTS_TABLE, null, null);
mDb.insert(ProductsMetaData.PRODUCTS_TABLE, null, values);

}
public Cursor fetchProducts(){ //metodo per fare la query di tutti i dati
return mDb.query(ProductsMetaData.PRODUCTS_TABLE, null,null,null,null,null,null);
}

static class ProductsMetaData { // i metadati della tabella, accessibili ovunque
static final String PRODUCTS_TABLE = "products";
static final String ID = "_id";
static final String PRODUCT_NAME_KEY = "name";
static final String PRODUCT_PRICE_KEY = "price";
static final String PRODUCT_NUMERO_KEY = "numero";
}

private static final String PRODUCTS_TABLE_CREATE = "CREATE TABLE IF NOT EXISTS " //codice sql di creazione della tabella
+ ProductsMetaData.PRODUCTS_TABLE + " ("
+ ProductsMetaData.ID+ " integer primary key autoincrement, "
+ ProductsMetaData.PRODUCT_NAME_KEY + " text not null, "
+ ProductsMetaData.PRODUCT_PRICE_KEY + " integer not null"
+ ProductsMetaData.PRODUCT_PRICE_KEY + " integer not null);";


private class DbHelper extends SQLiteOpenHelper { //classe che ci aiuta nella creazione del db

public DbHelper(Context context, String name, CursorFactory factory,int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase _db) { //solo quando il db viene creato, creiamo la tabella
_db.execSQL(PRODUCTS_TABLE_CREATE);
}
@Override
public void onUpgrade(SQLiteDatabase _db, int oldVersion, int newVersion) {
//qui mettiamo eventuali modifiche al db, se nella nostra nuova versione della app, il db cambia numero di versione

}
}
}