2017-02-21 14 views
0

何がうまくいかなかったのか分かりませんが、ログインをクリックすると値は表示されません。これは、ここで私は私のDatabaseHelper.java方法を作ってみましたが、それでもそれは動作しませんでした、私のデータベースですprofile.java私のSQLiteデータベースにデータを表示できません[Android]

TextView vName = (TextView) findViewById(R.id.tvName); 
    TextView vEmail = (TextView) findViewById(R.id.tvEmail); 
    TextView vMobile = (TextView) findViewById(R.id.tvMobile); 

    Contact contact = new Contact(); 
    vName.setText(contact.getName().toString()); 
    vEmail.setText(contact.getEmail().toString()); 
    vMobile.setText(contact.getMobile().toString()); 

    Button btnOut = (Button) findViewById(R.id.btnOut); 
    btnOut.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent Outent = new Intent(Profile.this,MainActivity.class); 
      startActivity(Outent); 
      finish(); 
     } 
    }); 

ための私のコードです。私は皆さんのような専門家の助けを借りたいと思います。 DatabaseHelper.java

private static final String TABLE_CREATE = "create table contacts(id integer primary key not null ,"+ 
     "name text not null, email text not null, pass text not null, mobile text not null);"; 

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


@Override 
public void onCreate(SQLiteDatabase db) { 
    db.execSQL(TABLE_CREATE); 
    this.db =db; 
} 

public void insertContact(Contact c){ 
    db = this.getWritableDatabase(); 
    ContentValues values = new ContentValues(); 

    String query = "select * from contacts"; 
    Cursor cursor = db.rawQuery(query,null); 
    int count = cursor.getCount(); 


    values.put(COLUMN_ID,count); 
    values.put(COLUMN_NAME,c.getName()); 
    values.put(COLUMN_EMAIL,c.getEmail()); 
    values.put(COLUMN_PASS, c.getPass()); 
    values.put(COLUMN_MOBILE, c.getMobile()); 

    db.insert(TABLE_NAME,null,values); 
    db.close(); 
} 

public Cursor getAllData(){ 
    SQLiteDatabase db = this.getWritableDatabase(); 
    Cursor res = db.rawQuery("select email,name,mobile from"+TABLE_NAME,null); 
    return res; 
} 

public String searchPass(String email){ 
    db = this.getReadableDatabase(); 
    String query = "select email, pass from " + TABLE_NAME; 
    Cursor cursor = db.rawQuery(query,null); 
    String a, b; 
    b = "not found"; 
    if(cursor.moveToFirst()){ 
     do{ 
      a = cursor.getString(0); 

      if(a.equals(email)){ 
       b = cursor.getString(1); 
       break; 
      } 
     }while(cursor.moveToNext()); 
    } 
    return b; 
} 

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    String query = "DROP TABLE IF EXISTS" + TABLE_NAME; 
    db.execSQL(query); 
    this.onCreate(db); 
} 
+3

ここで、データベースの一部はどこですか? – Fusselchen

答えて

0

あなたのプロフィール活動でgetAllData()を呼び出していません。

ProfileActivity

List<Contact> contacts = db.getAllData();   
     for (Contact cn : contacts) { 
      String name = cn.getName(); 
      vName.setText(name); 
      // follow by getEmail and getMobile 
     } 

DatabaseHelper

// Getting All Data 
    public List<Contact> getAllData() { 
     List<Contact> contactList = new ArrayList<Contact>(); 
     // Select All Query 
     String selectQuery = "SELECT email,name,mobile from"+TABLE_NAME; 

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

     // looping through all rows and adding to list 
     if (cursor.moveToFirst()) { 
      do { 
       Contact contact = new Contact(); 
       contact.setName((cursor.getString(0)); 
       contact.setEmail(cursor.getString(1)); 
       contact.setMobile(cursor.getString(2)); 
       contactList.add(contact); 
      } while (cursor.moveToNext()); 
     } 

     return contactList; 
    } 

がうまくいけば、それは正確で便利です。

+0

コードを試した後、ログインボタンをタップするとこのエラーが表示されます。 "android.database.sqlite.SQLiteException:いいえそのような列:電子メール(コード1):コンパイル中:連絡先から電子メール、名前、モバイルを選択" – Phantom

+0

データベースをチェックして、テーブルに電子メール –

+0

という名前の列があることを確認してください私のデータベースmy tableにはemailという名前の列があります。 – Phantom

関連する問題