Autore Topic: Caricare dati database per invio dato utente n a email utente n  (Letto 447 volte)

Offline AndreaF

  • Nuovo arrivato
  • *
  • Post: 16
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S
Caricare dati database per invio dato utente n a email utente n
« il: 20 Gennaio 2012, 13:30:14 CET »
0
Allora ho creato un'applicazione che deve inviare delle email a tutti i contatti salvati nel database non appena si fa click sull'apposito bottone inviando a ogni contatto email il suo rispettivo punteggio,

l'idea era di far scorrere le coppie email punteggio di ogni utente nel database e passarle a un metodo apposito che invia l'email


il metodo send l'ho implementato in maniera da ricevere  l'indirizzo email e il punteggio associato

tipo

 
Codice: [Seleziona]
public void inviaEmail(String indirizzoEmail, Int punteggio){
l'ho testato e funziona correttamente,
l'unico problema è che non riesco a definire un modo adatto per
passare in maniera progressiva l'indirizzo email e il dato punteggio di ogni singolo utente al click del pulsante :'(


Il codice della classe dbhelper del mio progetto è
Codice: [Seleziona]
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;




public class DatabaseHelper extends SQLiteOpenHelper {

static final String dbName="demoDB";
static final String PlayerTable="Players";
static final String colID="PlayerID";
static final String colName="PlayerName";
static final String colEmail="Email";
static final String colScore="Score";
static final String colDept="Dept";

static final String deptTable="Dept";
static final String colDeptID="DeptID";
static final String colDeptName="DeptName";

static final String viewEmps="ViewEmps";


public DatabaseHelper(Context context) {
    super(context, dbName, null,33);

    // TODO Auto-generated constructor stub
}

@Override
public void onCreate(SQLiteDatabase db) {
    // TODO Auto-generated method stub

    db.execSQL("CREATE TABLE "+deptTable+" ("+colDeptID+ " INTEGER PRIMARY KEY , "+
            colDeptName+ " TEXT)");

    db.execSQL("CREATE TABLE "+PlayerTable+" ("+colID+" INTEGER PRIMARY KEY AUTOINCREMENT, "+
            colName+" TEXT, "+colEmail+" TEXT, "+colScore+" Integer, "+colDept+" INTEGER NOT NULL ,FOREIGN KEY ("+colDept+") REFERENCES "+deptTable+" ("+colDeptID+"));");


    db.execSQL("CREATE TRIGGER fk_empdept_deptid " +
            " BEFORE INSERT "+
            " ON "+PlayerTable+

            " FOR EACH ROW BEGIN"+
            " SELECT CASE WHEN ((SELECT "+colDeptID+" FROM "+deptTable+" WHERE "+colDeptID+"=new."+colDept+" ) IS NULL)"+
            " THEN RAISE (ABORT,'Foreign Key Violation') END;"+
            "  END;");

    db.execSQL("CREATE VIEW "+viewEmps+
            " AS SELECT "+PlayerTable+"."+colID+" AS _id,"+
            " "+PlayerTable+"."+colName+","+
            " "+PlayerTable+"."+colEmail+","+
            " "+PlayerTable+"."+colScore+","+
            " "+deptTable+"."+colDeptName+""+
            " FROM "+PlayerTable+" JOIN "+deptTable+
            " ON "+PlayerTable+"."+colDept+" ="+deptTable+"."+colDeptID
            );
    //Inserts pre-defined sections
    InsertDepts(db);

}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    // TODO Auto-generated method stub

    db.execSQL("DROP TABLE IF EXISTS "+PlayerTable);
    db.execSQL("DROP TABLE IF EXISTS "+deptTable);

    db.execSQL("DROP TRIGGER IF EXISTS dept_id_trigger");
    db.execSQL("DROP TRIGGER IF EXISTS dept_id_trigger22");
    db.execSQL("DROP TRIGGER IF EXISTS fk_empdept_deptid");
    db.execSQL("DROP VIEW IF EXISTS "+viewEmps);
    onCreate(db);
}

 void AddPlayer(Player emp)
{


     SQLiteDatabase db= this.getWritableDatabase();


    ContentValues cv=new ContentValues();

    cv.put(colName, emp.getName());
    cv.put(colName, emp.getEmail());
    cv.put(colScore, emp.getScore());
    cv.put(colDept, emp.getDept());
    //cv.put(colDept,2);

    db.insert(PlayerTable, colName, cv);
    db.close();


}

 int getPlayerCount()
 {
    SQLiteDatabase db=this.getWritableDatabase();
    Cursor cur= db.rawQuery("Select * from "+PlayerTable, null);
    int x= cur.getCount();
    cur.close();
    return x;
 }

 Cursor getAllPlayers()
 {
     SQLiteDatabase db=this.getWritableDatabase();



     //Cursor cur= db.rawQuery("Select "+colID+" as _id , "+colName+", "+colEmail+","+colScore+" from "+PlayerTable, new String [] {});
     Cursor cur= db.rawQuery("SELECT * FROM "+viewEmps,null);
     return cur;

 }

 Cursor getAllDepts()
 {
     SQLiteDatabase db=this.getReadableDatabase();
     Cursor cur=db.rawQuery("SELECT "+colDeptID+" as _id, "+colDeptName+" from "+deptTable,new String [] {});

     return cur;
 }

 void InsertDepts(SQLiteDatabase db)
 {
     ContentValues cv=new ContentValues();
        cv.put(colDeptID, 1);
        cv.put(colDeptName, "Sales");
        db.insert(deptTable, colDeptID, cv);
        cv.put(colDeptID, 2);
        cv.put(colDeptName, "IT");
        db.insert(deptTable, colDeptID, cv);
        cv.put(colDeptID, 3);
        cv.put(colDeptName, "HR");
        db.insert(deptTable, colDeptID, cv);
        db.insert(deptTable, colDeptID, cv);

 }

 public String GetDept(int ID)
 {
     SQLiteDatabase db=this.getReadableDatabase();

     String[] params=new String[]{String.valueOf(ID)};
     Cursor c=db.rawQuery("SELECT "+colDeptName+" FROM"+ deptTable+" WHERE "+colDeptID+"=?",params);
     c.moveToFirst();
     int index= c.getColumnIndex(colDeptName);
     return c.getString(index);
 }

 public Cursor getEmpByDept(String Dept)
 {
     SQLiteDatabase db=this.getReadableDatabase();
     String [] columns=new String[]{"_id",colName,colEmail,colScore,colDeptName};
     Cursor c=db.query(viewEmps, columns, colDeptName+"=?", new String[]{Dept}, null, null, null);
     return c;
 }

 public int GetDeptID(String Dept)
 {
     SQLiteDatabase db=this.getReadableDatabase();
     Cursor c=db.query(deptTable, new String[]{colDeptID+" as _id",colDeptName},colDeptName+"=?", new String[]{Dept}, null, null, null);
     //Cursor c=db.rawQuery("SELECT "+colDeptID+" as _id FROM "+deptTable+" WHERE "+colDeptName+"=?", new String []{Dept});
     c.moveToFirst();
     return c.getInt(c.getColumnIndex("_id"));

     }

 public int UpdateEmp(Player emp)
 {
     SQLiteDatabase db=this.getWritableDatabase();
     ContentValues cv=new ContentValues();
     cv.put(colName, emp.getName());
     cv.put(colScore, emp.getScore());
     cv.put(colDept, emp.getDept());
     return db.update(PlayerTable, cv, colID+"=?", new String []{String.valueOf(emp.getID())});

 }

 public void DeleteEmp(Player emp)
 {
     SQLiteDatabase db=this.getWritableDatabase();
     db.delete(PlayerTable,colID+"=?", new String [] {String.valueOf(emp.getID())});
     db.close();



 }

}


Spero qualche utente in gamba del forum mi illumini  O:-)
« Ultima modifica: 20 Gennaio 2012, 20:38:30 CET da AndreaF, Reason: aggiunto codice dbhelper »