2016-09-09 1 views
0

MYアクティビティコードを渡すことは、このエラーを示す:が起因するこの縮退は、una​​me(コード1)、コンパイル中:のunameを選択し、fromcontacts

Caused by: android.database.sqlite.SQLiteException: no such column: uname (code 1): , while compiling: select uname,pass fromcontacts

私のアプリは開いたらすぐにクラッシュします。

package eminence.bbpsgangarammarg; 

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{ 

private static final int DATABSE_VERSION =1; 
private static final String DATABSE_NAME = "contacts.db"; 
private static final String TABLE_NAME = "contacts"; 
private static final String COLUMN_ID= "ID"; 
private static final String COLUMN_NAME= "name"; 
private static final String COLUMN_EMAIL= "email"; 
private static final String COLUMN_UNAME= "uname"; 
private static final String COLUMN_PASSWORD= "pass"; 
SQLiteDatabase db; 

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

public DatabaseHelper(Context context) 
{ 
    super(context, DATABSE_NAME , null, DATABSE_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_UNAME , c.getUname()); 
    values.put(COLUMN_PASSWORD , c.getPass()); 

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


public String searchPass(String uname) { 
    db = this.getReadableDatabase(); 
    String query = "select uname,pass from" + TABLE_NAME; 

    Cursor cursor = db.rawQuery(query, null); 
    String a, b; 
    b = "not found"; 
    if (cursor.moveToFirst()) { 
     do { 
      a = cursor.getString(0); 
      b = cursor.getString(1); 

      if (a.equals(uname)) { 
       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); 
} 
} 
+0

カウントを取得している場合'連絡先から数えて(*)cを選択する '方がいいのではないでしょうか? – halfer

答えて

1
次のように最終的にあなたのクエリが誤っなってきていたので間違っている

"select uname,pass fromcontacts" 

"fromcontacts"はそれがあるべき存在しませんsearchPass()方法

String query = "select uname,pass from " + TABLE_NAME; 

に次にあなたの第二行を変更

"from contacts"

+0

@Lakshay Groverはあなたを助けましたか? – Nikhil

関連する問題