Autore Topic: Creazione DataBase SQLite  (Letto 459 volte)

Offline redjin

  • Nuovo arrivato
  • *
  • Post: 10
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Htc One S
  • Sistema operativo:
    Elementary OS Luna, Windows 8.1
Creazione DataBase SQLite
« il: 25 Luglio 2013, 11:53:37 CEST »
0
Buongiorno, sto realizzando un database nella mia app, l'unico problema e che l'app non da errori eppure il database non viene creato...questo è il codice:
Codice (Java): [Seleziona]
package tecno.cosaindosso;
import android.content.Context;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;


public class MioDatabaseHelper  {
        public static final String COLOUMN_TITLE = "title";
        public static final String COLOUMN_BODY = "body";
        public static final String COLOUMN_ID ="_id";
       
        public static final String TAG = MioDatabaseHelper.class.getSimpleName();
        private DatabaseHelper mDatabase;
        private SQLiteDatabase mDb;
       
        public static final String DATABASE_NAME = "database.db";
        public static final String TABLE_NAME = "vestiti";
        public static final int DATABASE_VERSION = 1;
       
        public static final String DATABASE_CREATE = "create table vestiti (_id integer primary key autoincrement,  " + "title text not null, body text not null);";
       
        private final Context mContext;
       
        public class DatabaseHelper extends SQLiteOpenHelper{
                public DatabaseHelper(Context context){
                        super(context, DATABASE_NAME, null, DATABASE_VERSION);
                }
                @Override
                public void onCreate(SQLiteDatabase db) {
                        db.execSQL(DATABASE_CREATE);
                        Log.d(TAG, "onCreate");
                       
                }

                @Override
                public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) {
                        db.execSQL("DROP TABLE IF EXIST vestiti");
                        onCreate(db);
                        Log.d(TAG, "onUpgrade");
                       
                }
               
        }
        public MioDatabaseHelper(Context context){
                mContext = context;
        }
       
        public MioDatabaseHelper open() throws SQLException{
                mDatabase = new DatabaseHelper(mContext);
                return this;
        }
       
}

Mentre ho inizializzato il database nella MainActivity:
Codice (Java): [Seleziona]
public class MainActivity extends Activity {
        private MioDatabaseHelper mdb;
         
     
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mdb  = new MioDatabaseHelper(this);
        mdb.open();
        ActionBar actionbar = getActionBar();
        actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
       
        ActionBar.Tab FragTab1 = actionbar.newTab().setText("Home");
        ActionBar.Tab FragTab2 = actionbar.newTab().setText("Databa");
       
        Fragment fragment = new home();
        Fragment fragment2 = new databa();
       
        FragTab1.setTabListener(new MyTabListener(fragment));
        FragTab2.setTabListener(new MyTabListener(fragment2));
       
       
        actionbar.addTab(FragTab1);
        actionbar.addTab(FragTab2);
       
   
     
    }

Dove sbaglio?

Offline crbin1

  • Utente junior
  • **
  • Post: 61
  • Respect: +6
    • labeltodo
    • Mostra profilo
    • Do Androids Dream of Electric Sheep?
  • Dispositivo Android:
    Galaxy Nexus
Re:Creazione DataBase SQLite
« Risposta #1 il: 25 Luglio 2013, 14:53:30 CEST »
0
Crei la variabile mDb

Codice (Java): [Seleziona]
private SQLiteDatabase mDb;
ma poi non la usi mai, non usi cioè mai il db, per questo non te lo crea.

Il metodo open deve diventare

Codice (Java): [Seleziona]
public MioDatabaseHelper open() throws SQLException{
     mDatabase = new DatabaseHelper(mContext);
     mDb = mDatabase.getWritableDatabase();
     return this;
}

A questo punto ti puoi creare nella classe MioDatabaseHelper dei metodi per interagire con il database, per esempio

Codice (Java): [Seleziona]
public Cursor fetchVestiti () {
     return mDb.query("vestiti", new String[] {"_id", "title", "body"}, null, null, null, null, null);
}

Offline redjin

  • Nuovo arrivato
  • *
  • Post: 10
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Htc One S
  • Sistema operativo:
    Elementary OS Luna, Windows 8.1
Re:Creazione DataBase SQLite
« Risposta #2 il: 25 Luglio 2013, 15:39:26 CEST »
0
Ok ti ringrazio funziona  :-)