2012-05-31 6 views
1

J'ai utilisé le code suivant pour créer une table et insérer des données dans la table. Le code affiche les données uniquement lorsque l'instruction select est dans le même fichier. J'ai remarqué qu'il n'y a pas de base de données dans/data/data. Est-ce que je manque quelque chose ou le processus est réellement faux? Si mal alors que dois-je faire?Android: SQLite DataBase ne crée pas

surgicalmstDB = this.openOrCreateDatabase("surgicalmstDB ", SQLiteDatabase.CREATE_IF_NECESSARY, null); 
     surgicalmstDB.setVersion(1); 
     surgicalmstDB.setLocale(Locale.getDefault()); 
     surgicalmstDB.setLockingEnabled(true); 
     surgicalmstDB.execSQL("CREATE TABLE IF NOT EXISTS " + 
       " instrument " + 
       " (id int,instrumnt TEXT, category TEXT, details TEXT);"); 

surgicalmstDB.execSQL("INSERT INTO " + 
       "instrument" + 
       " Values (2,'#3 Long Knife Handle ','Cutting and dissecting','Used to cut deeper tissue.');"); 

//----------------------------------------------------------------- 
String query="SELECT * from instrument WHERE id=2"; 
       Cursor cursor=surgicalmstDB.rawQuery(query, null); 
       while (cursor.moveToNext()) { 
        String title =cursor.getString(cursor 
          .getColumnIndex("instrumnt")); 
        String author= cursor.getString(cursor 
          .getColumnIndex("category")); 
        String price= cursor.getString(cursor 
          .getColumnIndex("details")); 
         txt.setText(title+"-----"+author+"-------"+price); 
        } 
        cursor.close(); 
        surgicalmstDB.close(); 
+0

que vous essayez dans l'émulateur? – Lucifer

+0

oui, j'essaie dans l'émulateur. – Moyeen

+0

donc lorsque vous vérifiez le répertoire/data/data/dir, vous avez peut-être fermé votre émulateur, je vous suggère de laisser l'émulateur en marche, puis de le vérifier. – Lucifer

Répondre

1

Je vous suggère de faire référence à SQLiteOpenHelper au lieu de requêtes codées en dur.

code suivant vous aidera

modèle employé classe

package com.database; 

public class Employee { 


    int _id; 
    String _name; 
    String _phone_number; 


    public Employee(){ 

    } 
    // constructor 
    public Employee (int id, String name, String _phone_number){ 
     this._id = id; 
     this._name = name; 
     this._phone_number = _phone_number; 
    } 

    // constructor 
    public Employee (String name, String _phone_number){ 
     this._name = name; 
     this._phone_number = _phone_number; 
    } 
    // getting ID 
    public int getID(){ 
     return this._id; 
    } 

    // setting id 
    public void setID(int id){ 
     this._id = id; 
    } 

    // getting name 
    public String getName(){ 
     return this._name; 
    } 

    // setting name 
    public void setName(String name){ 
     this._name = name; 
    } 

    // getting phone number 
    public String getPhoneNumber(){ 
     return this._phone_number; 
    } 

    // setting phone number 
    public void setPhoneNumber(String phone_number){ 
     this._phone_number = phone_number; 
    } 
} 

SQLite Helper classe

DatabaseHelper public class étend SQLiteOpenHelper {

private static final int DATABASE_VERSION = 1; 

    private static final String DATABASE_NAME = "employeeDB"; 


    private static final String TABLE_EMPLOYEE = "employee"; 


private static final String KEY_ID = "id"; 
private static final String KEY_NAME = "name"; 
private static final String KEY_PH_NO = "phone_number"; 

public DatabaseHelper (Context context) { 
    super(context, DATABASE_NAME, null, DATABASE_VERSION); 
} 

// Creating Tables 
@Override 
public void onCreate(SQLiteDatabase db) { 
    String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_EMPLOYEE + "(" 
      + KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT," 
      + KEY_PH_NO + " TEXT" + ")"; 
    db.execSQL(CREATE_CONTACTS_TABLE); 
} 

// Upgrading database 
@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    // Drop older table if existed 
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_CONTACTS); 

    // Create tables again 
    onCreate(db); 
} 

Opérations CRUD

// Ajout de nouveaux employés

public void addEmployee(Employee employee) {} 

// Obtenir seul employé

public Contact getEmployee(int id) {} 

// Obtenir tous les employés

public List<Employee> getAllEmployees() {} 

// Obtenir employés Nombre

public int getEmployeesCount() {} 

// Mise à jour unique employé

public int updateEmployee(Employee employee) {} 

// Suppression simple employé

public void deleteEmployee(Employee employee) {} 

Insertion nouveau record

public void addemployee(Employee employee) { 
    SQLiteDatabase db = this.getWritableDatabase(); 

    ContentValues values = new ContentValues(); 
    values.put(KEY_NAME, employee.getName()); 
    values.put(KEY_PH_NO, employee.getPhoneNumber()); 
    db.insert(TABLE_EMPLOYEE, null, values); 
    db.close(); 
} 

lecture Ligne (s)

public Contact getEmployee(int id) { 
    SQLiteDatabase db = this.getReadableDatabase(); 

    Cursor cursor = db.query(TABLE_EMPLOYEE, new String[] { KEY_ID, 
      KEY_NAME, KEY_PH_NO }, KEY_ID + "=?", 
      new String[] { String.valueOf(id) }, null, null, null, null); 
    if (cursor != null) 
     cursor.moveToFirst(); 

    Employee employee= new Employee(Integer.parseInt(cursor.getString(0)), 
      cursor.getString(1), cursor.getString(2)); 

    return employee; 
} 

Obtenir tous les employés

public List<Contact> getAllEmployees() { 
    List<Employee> employeeList = new ArrayList<Employee>(); 
    // Select All Query 
    String selectQuery = "SELECT * FROM " + TABLE_EMPLOYEE; 

    SQLiteDatabase db = this.getWritableDatabase(); 
    Cursor cursor = db.rawQuery(selectQuery, null); 

    // looping through all rows and adding to list 
    if (cursor.moveToFirst()) { 
     do { 
      Employee employee= new Employee(); 
      employee.setID(Integer.parseInt(cursor.getString(0))); 
      employee.setName(cursor.getString(1)); 
      employee.setPhoneNumber(cursor.getString(2)); 

      employeeList.add(employee); 
     } while (cursor.moveToNext()); 
    } 

     return employeeList; 
} 

ensemble des collaborateurs Count

public int getEmployeesCount() { 
     String countQuery = "SELECT * FROM " + TABLE_EMPLOYEE; 
     SQLiteDatabase db = this.getReadableDatabase(); 
     Cursor cursor = db.rawQuery(countQuery, null); 
     cursor.close(); 

     // return count 
     return cursor.getCount(); 
    } 

Mise à jour Enregistrement

public int updateEmployee(Employee employee) { 
    SQLiteDatabase db = this.getWritableDatabase(); 

    ContentValues values = new ContentValues(); 
    values.put(KEY_NAME, employee.getName()); 
    values.put(KEY_PH_NO, employee.getPhoneNumber()); 

    // updating row 
    return db.update(TABLE_EMPLOYEE, values, KEY_ID + " = ?", 
      new String[] { String.valueOf(employee.getID()) }); 
} 

suppression enregistrement

public void deleteEmployee(Employee employee) { 
    SQLiteDatabase db = this.getWritableDatabase(); 
    db.delete(TABLE_EMPLOYEE, KEY_ID + " = ?", 
      new String[] { String.valueOf(employee.getID()) }); 
    db.close(); 
}