Aller au contenu

Recommended Posts

Salut,

je viens de creer ma base de donnée sqlite qui contiendra 2 tables je les ai crée et çava jusqu'au cette etape sauf que la pemiere à repondu à mes insertions et à la requete et m'affiche mes donnée correctement mais la deusieme table contient seulement les champs vides et la requete ne me renvois rien pouratant que j'ai suit les memes etapes...voiçi mon code et j'espere bien que quelqu'un de vous m'aide à trouver ma faille merci pour votre support

    
import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
public class DBTest extends Activity { 
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) { 
 super.onCreate(savedInstanceState); 

 SQLiteDatabase myDB= null; 
 String TableName = "mmm"; 

 String Data=""; 

 /*Create a Database*/
 try { 
  myDB = this.openOrCreateDatabase("DatabaseName", MODE_PRIVATE, null); 

  /* Create a Table in the Database. */ 
 myDB.execSQL("CREATE TABLE " 
    + TableName 
    + " (Field1 INT(3),Field2 VARCHAR,Field3 VARCHAR,Field4 VARCHAR,Field5 VARCHAR,Field6 VARCHAR,Field7 FLOAT,Field8 FLOAT);"); 



  /* Insert data to a Table*/ 
 myDB.execSQL("INSERT INTO " 
    + TableName 
    + " (Field1, Field2,Field3,Field4,Field5,Field6,Field7,Field8)" 
    + " VALUES (1,'Mourron','chokri','bouhlel','Rue de palmier','tunis',22,54);"); 
  myDB.execSQL("INSERT INTO " 
	     + TableName 
	     + " (Field1, Field2,Field3,Field4,Field5,Field6,Field7,Field8)" 
	     + " VALUES (2,'Aster','Mehdi','tounsi','Rue Monji Slim','sousse',32,65);"); 
  myDB.execSQL("INSERT INTO " 
	     + TableName 
	     + " (Field1, Field2,Field3,Field4,Field5,Field6,Field7,Field8)" 
	     + " VALUES (3,'Iris','najwa','chammekh','Av H Bourguiba','bizerte',50,33);"); 

  /*retrieve data from database */
  Cursor c = myDB.rawQuery("SELECT * FROM " + TableName +" where Field1=1;", null);

  int Column1 = c.getColumnIndex("Field1"); 
  int Column2 = c.getColumnIndex("Field2"); 
  int Column3 = c.getColumnIndex("Field3"); 
  int Column4 = c.getColumnIndex("Field4"); 
  int Column5 = c.getColumnIndex("Field5");
  int Column6 = c.getColumnIndex("Field6");
  int Column7 = c.getColumnIndex("Field7");
  int Column8 = c.getColumnIndex("Field8");


  // Check if our result was valid.*/

  c.moveToFirst(); 
  if (c != null) {
   /* Loop through all Results */
   do { 
    int id = c.getInt(Column1); 
    String nom_ph = c.getString(Column2); 
    String nom_phar = c.getString(Column3);
    String pre_phar= c.getString(Column4);
    String adresse= c.getString(Column5);
    String region= c.getString(Column6);
    Float longittude= c.getFloat(Column7);
    Float lattitude= c.getFloat(Column8);

    Data =Data+" "+id+" "+nom_ph+" "+nom_phar+" "+pre_phar+" "+adresse+" "+region+" "+longittude+" "+lattitude+"\n"; 

   }while(c.moveToNext()); 

  TextView tv = new TextView(this); 
  tv.setText(Data); 

  setContentView(tv); 
  }
 String TableName2 = "sss"; 

 String Data2=""; 



  /* Create a Table in the Database. */ 
 myDB.execSQL("CREATE TABLE " 
    + TableName2 
    + " (Field1 INT(3),Field2 VARCHAR);"); 



  /* Insert data to a Table*/ 
  myDB.execSQL("INSERT INTO " 
    + TableName2 
    + " (Field1, Field2)" 
    + " VALUES (1,'dim’);"); 
  myDB.execSQL("INSERT INTO " 
	     + TableName 
	     + " (Field1, Field2)" 
	     + " VALUES (2,'lundi’);"); 

  /*retrieve data from database */
  Cursor cdate = myDB.rawQuery("SELECT * FROM " + TableName +" where Field1=1;", null);

  int Column9 = cdate.getColumnIndex("Field1"); 
  int Column10 = cdate.getColumnIndex("Field2"); 

  // Check if our result was valid.*/

  cdate.moveToFirst(); 
  if (cdate != null) {
   // Loop through all Results 
   do { 
    int idate = cdate.getInt(Column9); 
    String datejour = cdate.getString(Column10); 

    Data2 =Data2+" "+idate+" "+datejour+"\n"; 

   }while(cdate.moveToNext()); 

  TextView tv = new TextView(this); 

  tv.setText(Data2); 


  setContentView(tv); 
  }}
 catch(Exception e) { 
  Log.e("Error", "Error", e); 
 } finally { 
  if (myDB != null) 
   myDB.close(); 
 }

}}

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir Chpil

j'ai arrivé aprés milles essais à organiser ma classe et la creation de mes 3 tables a reussi ainsi l'insertion...j'ai créee un curseur pour chaque table maintenant je veux faire cette requete

select from TableName1 TableName2 TableName3 where pharmacies.idph==disp.idph and disp.idph==date.iddate...comment faire pour l' inserer dans ma classe ? et voiçi mon nouveau code

import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
public class DBTest extends Activity { 
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) { 
 super.onCreate(savedInstanceState); 

 SQLiteDatabase myDB= null; 
 String TableName1 = "pharmacies"; 
 String TableName2 = "dates";
 String TableName3 = "disp";

 String Data1=""; 
 String Data2=""; 
 String Data3=""; 

 /*Create a Database*/
 try { 
  myDB = this.openOrCreateDatabase("DatabaseName", MODE_PRIVATE, null); 

  /* Create a Table in the Database. */ 
myDB.execSQL("CREATE TABLE " 
    + TableName1
    + " (idph INT(3),nomph VARCHAR );"); 



  /*Insert data to a Table*/ 
myDB.execSQL("INSERT INTO " 
    + TableName1
    + " (idph,nomph)" 
    + " VALUES (1,'ph1');"); 
  myDB.execSQL("INSERT INTO " 
	     + TableName1
	     + " (idph, nomph)" 
	     + " VALUES (2,'ph2');"); 
  myDB.execSQL("INSERT INTO " 
	     + TableName1
	     + " (idph, nomph)" 
	     + " VALUES (3,'ph3');"); 

  /*retrieve data from database */
  Cursor cph = myDB.rawQuery("SELECT * FROM " + TableName1 +" where idph=1;", null);


  int Column10 = cph.getColumnIndex("idph"); 
  int Column20 = cph.getColumnIndex("nomph"); 



  // Check if our result was valid.*/

  cph.moveToFirst(); 
  if (cph != null) {
   // Loop through all Results 
   do { 
    int idph = cph.getInt(Column10); 
    String nomph = cph.getString(Column20); 


   Data1=Data1+" "+idph+" "+nomph+" "+"\n"; 

   }while(cph.moveToNext()); 

  TextView tv = new TextView(this); 
  tv.setText(Data1); 

  setContentView(tv); 
  }


  /* Create a Table in the Database. */ 
myDB.execSQL("CREATE TABLE " 
    + TableName3
    + " (idph INT(3),iddate VARCHAR );"); 



  /*Insert data to a Table*/ 
myDB.execSQL("INSERT INTO " 
    + TableName3
    + " (idph, iddate)" 
    + " VALUES (1,1);"); 
  myDB.execSQL("INSERT INTO " 
	     + TableName3
	     + " (idph, iddate)" 
	     + " VALUES (2,3);"); 
  myDB.execSQL("INSERT INTO " 
	     + TableName3
	     + " (idph, iddate)" 
	     + " VALUES (3,2);"); 

  /*retrieve data from database */
  Cursor cdisp = myDB.rawQuery("SELECT * FROM " + TableName3 +" where idph=2;", null);


  int Column1 = cdisp.getColumnIndex("idph"); 
  int Column2 = cdisp.getColumnIndex("iddate"); 



  // Check if our result was valid.*/

  cdisp.moveToFirst(); 
  if (cdisp != null) {
   // Loop through all Results 
   do { 
    int idph = cdisp.getInt(Column1); 
    int iddate = cdisp.getInt(Column2); 


   Data3=Data3+" "+idph+" "+iddate+" "+"\n"; 

   }while(cdisp.moveToNext()); 

  TextView tv = new TextView(this); 
  tv.setText(Data3); 

  setContentView(tv); 
  }
 /* Create a Table in the Database. */ 
 myDB.execSQL("CREATE TABLE " 
     + TableName2
     + " (iddate INT(3),datejour VARCHAR );"); 



   /*Insert data to a Table*/ 
 myDB.execSQL("INSERT INTO " 
     + TableName2
     + " (iddate, datejour)" 
     + " VALUES (1,'lundi');"); 
   myDB.execSQL("INSERT INTO " 
		     + TableName2
		     + " (iddate, datejour)" 
		     + " VALUES (2,'mardi');"); 
   myDB.execSQL("INSERT INTO " 
		     + TableName2
		     + " (iddate, datejour)" 
		     + " VALUES (3,'mercredi');"); 

   /*retrieve data from database */
   Cursor cdate = myDB.rawQuery("SELECT * FROM " + TableName2 +" where iddate=1;", null);

   int Column3 = cdate.getColumnIndex("iddate"); 
   int Column4 = cdate.getColumnIndex("datejour"); 



   // Check if our result was valid.*/

  cdate.moveToFirst(); 
   if (cdate != null) {
    // Loop through all Results 
    do { 
     int iddate = cdate.getInt(Column3); 
     String datejour = cdate.getString(Column4); 


     Data2=Data2+" "+iddate+" "+datejour+" "+"\n"; 

    }while(cdate.moveToNext()); 

   TextView tv = new TextView(this); 
   tv.setText(Data2); 

   setContentView(tv); 
   }}
 catch(Exception e) { 
  Log.e("Error", "Error", e); 
 } finally { 
  if (myDB != null) 
   myDB.close(); 
 } 
 }}

Toutes mes esperances de pouvoir m'aider comme habitude

Lien vers le commentaire
Partager sur d’autres sites

salut, 51 vues et personne n'a pu me supporter :(

Peut-être que personne n'a vraiment compris ce que tu veux faire...

Une seule remarque me vient à la lecture de ce code: que vient faire tout ce code de base de données dans le onCreate d'une Activity ?? Parce que là, la création des tables de la base sera faite à chaque lancement de l'Activity. Est-ce vraiment ce que tu veux faire ? J'en doute.

Il me semble te l'avoir déjà conseillé, dans un autre post, mais tu devrais vraiment te pencher sur des exemples (celui du Notapad par exemple) pour t'en inspirer. Il y est expliqué comment implémenter la logique liée à la base de données dans une classe séparée, en s'aidant ce qu'offre Android pour assurer que la base soit bien créée avant la première utilisation, ...

Ensuite, le reste ira tout seul :)

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir,

Tout ce que j'ai voulu faire est comment inserer ma requete ...pour la creation des tables je peux modifier le code en inserant une condition d'existance pour eviter la nouvelle creation de mes tables car sinon rien ne marche tant que ma base existe déja...j'ai utilisé ce type de code car il m'a donné une resultat ...en tout cas merci pour vos conseils precieux et je vais essayer encore ...à propos mon post je crois que seul la moitié des visiteurs n'ont rien compris et que le reste à le meme probleme que le miens :)

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...