Autore Topic: Popolare db sqlite da web services  (Letto 604 volte)

Offline Cono86

  • Nuovo arrivato
  • *
  • Post: 14
  • Respect: 0
    • Mostra profilo
Popolare db sqlite da web services
« il: 20 Gennaio 2012, 10:34:37 CET »
0
Ciao a tutti,
ho un problema riguardante il popolamento del database con i dati prelevati da un web services.
In pratica ricevo la risposta da ws con tutti i dati in un oggetto Soap, lo estrapolo e lo inserisco in una tabella in questo modo:
Codice (Java): [Seleziona]
private long inserisciPersonMobile(SQLiteDatabase db, SoapObject soap){
                int num_personmobile = soap.getPropertyCount();
                ContentValues values = new ContentValues();
                Log.i("", "num_personmobile "+num_personmobile);
                Long id = null;
                try{
                        for(int i=0; i<num_personmobile;i++){
//                              PersonMobile pm = new PersonMobile();
                                Log.i("", "sono nel try di inserisciPersonMobile");
                                SoapObject pi = (SoapObject) soap.getProperty(i);
                                values.put("ID", pi.getProperty(0).toString().toString());
                                values.put("RagioneSociale", pi.getProperty(1).toString());
                                values.put("Indirizzo", pi.getProperty(2).toString());
                                values.put("Telefono", pi.getProperty(3).toString());
                                values.put("Fax", pi.getProperty(4).toString());
                                values.put("Email", pi.getProperty(5).toString());
                                values.put("SitoWeb", pi.getProperty(6).toString());
                                id = db.insert("personmobile", null, values);
                                id = (Long) pi.getProperty(0);
                        Log.i("", "id "+id);
                        }
                        }catch (Exception e) {
                                Log.i("", "Errore: "+e.getMessage());
                        }
                        return id;
      }
La tabella è stata creata nel seguente modo, ho creato dapprima la seguente interfaccia:
Codice (Java): [Seleziona]
public interface PersonMobile {
       
        public String TABLE_NAME = "personmobile";

//      public String TABLE_ID = "personmobile_id";
       
        public String ID = "ID";     //in realtà dovrebbe essere un int
       
        public String RagioneSociale = "RagioneSociale";
       
        public String Indirizzo = "Indirizzo";
       
        public String Telefono = "Telefono";
       
        public String Fax = "Fax";
       
        public String Email = "Email";
       
        public String SitoWeb = "SitoWeb";

}

e succesivamente la seguente classe:
Codice (Java): [Seleziona]
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DatabaseHelper extends SQLiteOpenHelper {

        private static final String DATABASE_NAME = "tts_db";
        private static final int DATABASE_VERSION = 1;
       
        public DatabaseHelper(Context context) {
                super(context, DATABASE_NAME, null, DATABASE_VERSION);
        }
private static final String DATABASE_CREATE = "CREATE TABLE "+PersonMobile.TABLE_NAME+" (" +
                                PersonMobile.ID +      " TEXT NOT NULL PRIMARY KEY, " +
                                PersonMobile.RagioneSociale +         " TEXT NOT NULL, "+
                                PersonMobile.Indirizzo +   " TEXT NOT NULL, " +
                                PersonMobile.Telefono +         " TEXT NOT NULL, "+
                                PersonMobile.Fax +    " TEXT NOT NULL, "+
                                PersonMobile.Email +            " TEXT NOT NULL, "+
                                PersonMobile.SitoWeb +       " TEXT NOT NULL)";
public void onCreate(SQLiteDatabase db) {
        db.execSQL(DATABASE_CREATE);
        }

        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
               
        }
}
Il problema è che quando mando in esecuzione il codice mi restituisce il seguente errore:
 I/Database(473): sqlite returned: error code = 1, msg = table personmobile has no column named RagioneSociale
Potete aiutarmi???
Grazie in anticipo