MYアクティビティコードを渡すことは、このエラーを示す:が起因するこの縮退は、uname(コード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);
}
}
カウントを取得している場合'連絡先から数えて(*)cを選択する '方がいいのではないでしょうか? – halfer