I am newbie to sqlite in android i am creating an application in android that is to retrieve data from sqlite and display in list view. I did some code. But, I am getting an error called "java.lang.IllegalArgumentException: column '_id' does not exist".Please tell me how to fix it. Big Thanks in advance.
fetch_database.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
progressGenerator.start(fetch_database);
media_player = media_player.create(DatabaseListView.this, R.raw.retrievingfromdatabase);
media_player.start();
String[] from = {logindatabase_adapter.USER_NAME,logindatabase_adapter.USER_PASSWORD};
int[] to = {R.id.txt_username,R.id.txt_pasword};
cursor = logindatabase_adapter.feching_Data();
cursoradapter = new SimpleCursorAdapter(DatabaseListView.this, R.layout.listcell, cursor, from, to);
database_results.setAdapter(cursoradapter);
}
});
}
This is my login database adapter:
public class LoginDataBaseAdapter
{
//Database name
static final String DATABASE_NAME = "MilanloginRegistration.db";
static final int DATABASE_VERSION = 1;
public static final int NAME_COLUMN = 1;
// TODO: Create public field for each column in your table.
// SQL Statement to create a new database.
public static final String TABLE_NAME="MilanLoginregistration";
public static final String ID="ID";
public static final String USER_NAME="USERNAME";
public static final String USER_PASSWORD ="PASSWORD";
static final String DATABASE_CREATE = "create table "+TABLE_NAME+
"( " +"ID"+" integer primary key autoincrement,"+"USERNAME text UNIQUE,"+USER_PASSWORD+" text); ";
// Variable to hold the database instance
public SQLiteDatabase db;
// Context of the application using the database.
private final Context context;
// Database open/upgrade helper
private DataBaseHelper dbHelper;
public LoginDataBaseAdapter(Context _context)
{
context = _context;
dbHelper = new DataBaseHelper(context, DATABASE_NAME, null, DATABASE_VERSION);
}
public LoginDataBaseAdapter open() throws SQLException
{
db = dbHelper.getWritableDatabase();
return this;
}
public void close()
{
db.close();
}
public SQLiteDatabase getDatabaseInstance()
{
return db;
}
public void insertEntry(String username,String password)
{
ContentValues newValues = new ContentValues();
newValues.put("USERNAME",username);
newValues.put("PASSWORD",password);
// Insert the row into your table
db.insert("MilanLoginregistration",null,newValues);
///Toast.makeText(context, "Reminder Is Successfully Saved", Toast.LENGTH_LONG).show();
}
public int deleteEntry(String username,String password)
{
//String id=String.valueOf(ID);
String where="USERNAME=?";
int numberOFEntriesDeleted= db.delete("MilanLoginregistration", where, new String[]{username,password}) ;
// Toast.makeText(context, "Number fo Entry Deleted Successfully : "+numberOFEntriesDeleted, Toast.LENGTH_LONG).show();
return numberOFEntriesDeleted;
}
public Cursor feching_Data(){
String[] columns = {USER_NAME,USER_PASSWORD};
db = dbHelper.getWritableDatabase();
Cursor cursor = db.query(TABLE_NAME, columns,null,null,null,null,null);
return cursor;
}
public String getSinlgeEntry(String userName)
{
Cursor cursor=db.query("MilanLoginregistration", null, " USERNAME=?", new String[]{userName}, null, null, null);
if(cursor.getCount()<1) // UserName Not Exist
{
cursor.close();
return "NOT EXIST";
}
cursor.moveToFirst();
String password= cursor.getString(cursor.getColumnIndex("PASSWORD"));
cursor.close();
return password;
}
public String checkSinlgeEntry(String userName)
{
Cursor cursor=db.query("MilanLoginregistration", null, " USERNAME=?", new String[]{userName}, null, null, null);
if(cursor.getCount()>=1) // UserName Exist
{
cursor.close();
return "NOT EXIST";
}
cursor.close();
return "";
}
public void updateEntry(String user_name,String pasword)
{
// Define the updated row content.
ContentValues updatedValues = new ContentValues();
// Assign values for each row.
updatedValues.put("USERNAME", user_name);
updatedValues.put("PASSWORD",pasword);
String where="USERNAME = ?";
db.update("MilanLoginregistration",updatedValues, where, new String[]{user_name});
}
/*public void Display(View v){
Cursor c = db.rawQuery("select * from MilanloginRegistration", null);
admin_settings_child.text_fetched_database_results.setText("");
c.moveToFirst();
do{
String username = c.getString(c.getColumnIndex("USERNAME"));
String password = c.getString(1);
admin_settings_child.text_fetched_database_results.append("USERNAME::-->"+username+"PASSWORD::-->"+password+"\n");
}while(c.moveToNext());
}*/
}
This is my logcat:
05-05 11:59:39.111: E/AndroidRuntime(5109): FATAL EXCEPTION: main
05-05 11:59:39.111: E/AndroidRuntime(5109): Process: com.developer.milanandroid, PID: 5109
05-05 11:59:39.111: E/AndroidRuntime(5109): java.lang.IllegalArgumentException: column '_id' does not exist
05-05 11:59:39.111: E/AndroidRuntime(5109): at android.database.AbstractCursor.getColumnIndexOrThrow(AbstractCursor.java:303)
05-05 11:59:39.111: E/AndroidRuntime(5109): at android.widget.CursorAdapter.init(CursorAdapter.java:172)
05-05 11:59:39.111: E/AndroidRuntime(5109): at android.widget.CursorAdapter.<init>(CursorAdapter.java:120)
05-05 11:59:39.111: E/AndroidRuntime(5109): at android.widget.ResourceCursorAdapter.<init>(ResourceCursorAdapter.java:52)
05-05 11:59:39.111: E/AndroidRuntime(5109): at android.widget.SimpleCursorAdapter.<init>(SimpleCursorAdapter.java:78)
05-05 11:59:39.111: E/AndroidRuntime(5109): at com.developer.milanandroid.DatabaseListView$1.onClick(DatabaseListView.java:50)
05-05 11:59:39.111: E/AndroidRuntime(5109): at android.view.View.performClick(View.java:4438)
05-05 11:59:39.111: E/AndroidRuntime(5109): at android.view.View.onKeyUp(View.java:8241)
05-05 11:59:39.111: E/AndroidRuntime(5109): at android.widget.TextView.onKeyUp(TextView.java:5682)
05-05 11:59:39.111: E/AndroidRuntime(5109): at android.view.KeyEvent.dispatch(KeyEvent.java:2664)
05-05 11:59:39.111: E/AndroidRuntime(5109): at android.view.View.dispatchKeyEvent(View.java:7665)
05-05 11:59:39.111: E/AndroidRuntime(5109): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1408)
05-05 11:59:39.111: E/AndroidRuntime(5109): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1408)
05-05 11:59:39.111: E/AndroidRuntime(5109): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1408)
05-05 11:59:39.111: E/AndroidRuntime(5109): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1408)
05-05 11:59:39.111: E/AndroidRuntime(5109): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1408)
05-05 11:59:39.111: E/AndroidRuntime(5109): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchKeyEvent(PhoneWindow.java:2035)
05-05 11:59:39.111: E/AndroidRuntime(5109): at com.android.internal.policy.impl.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1505)
05-05 11:59:39.111: E/AndroidRuntime(5109): at android.app.Activity.dispatchKeyEvent(Activity.java:2418)
05-05 11:59:39.111: E/AndroidRuntime(5109): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1962)
05-05 11:59:39.111: E/AndroidRuntime(5109): at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:3852)
05-05 11:59:39.111: E/AndroidRuntime(5109): at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3826)
05-05 11:59:39.111: E/AndroidRuntime(5109): at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3399)
05-05 11:59:39.111: E/AndroidRuntime(5109): at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3449)
05-05 11:59:39.111: E/AndroidRuntime(5109): at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3418)
05-05 11:59:39.111: E/AndroidRuntime(5109): at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3525)
05-05 11:59:39.111: E/AndroidRuntime(5109): at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3426)
05-05 11:59:39.111: E/AndroidRuntime(5109): at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3582)
05-05 11:59:39.111: E/AndroidRuntime(5109): at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3399)
05-05 11:59:39.111: E/AndroidRuntime(5109): at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3449)
05-05 11:59:39.111: E/AndroidRuntime(5109): at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3418)
05-05 11:59:39.111: E/AndroidRuntime(5109): at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3426)
05-05 11:59:39.111: E/AndroidRuntime(5109): at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3399)
05-05 11:59:39.111: E/AndroidRuntime(5109): at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3449)
05-05 11:59:39.111: E/AndroidRuntime(5109): at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3418)
05-05 11:59:39.111: E/AndroidRuntime(5109): at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3558)
05-05 11:59:39.111: E/AndroidRuntime(5109): at android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent(ViewRootImpl.java:3718)
05-05 11:59:39.111: E/AndroidRuntime(5109): at android.view.inputmethod.InputMethodManager$PendingEvent.run(InputMethodManager.java:2010)
05-05 11:59:39.111: E/AndroidRuntime(5109): at android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback(InputMethodManager.java:1704)
05-05 11:59:39.111: E/AndroidRuntime(5109): at android.view.inputmethod.InputMethodManager.finishedInputEvent(InputMethodManager.java:1695)
05-05 11:59:39.111: E/AndroidRuntime(5109): at android.view.inputmethod.InputMethodManager$ImeInputEventSender.onInputEventFinished(InputMethodManager.java:1987)
05-05 11:59:39.111: E/AndroidRuntime(5109): at android.view.InputEventSender.dispatchInputEventFinished(InputEventSender.java:141)
05-05 11:59:39.111: E/AndroidRuntime(5109): at android.os.MessageQueue.nativePollOnce(Native Method)
05-05 11:59:39.111: E/AndroidRuntime(5109): at android.os.MessageQueue.next(MessageQueue.java:138)
05-05 11:59:39.111: E/AndroidRuntime(5109): at android.os.Looper.loop(Looper.java:123)
05-05 11:59:39.111: E/AndroidRuntime(5109): at android.app.ActivityThread.main(ActivityThread.java:5017)
05-05 11:59:39.111: E/AndroidRuntime(5109): at java.lang.reflect.Method.invokeNative(Native Method)
05-05 11:59:39.111: E/AndroidRuntime(5109): at java.lang.reflect.Method.invoke(Method.java:515)
05-05 11:59:39.111: E/AndroidRuntime(5109): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
05-05 11:59:39.111: E/AndroidRuntime(5109): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
05-05 11:59:39.111: E/AndroidRuntime(5109): at dalvik.system.NativeStart.main(Native Method)
Aucun commentaire:
Enregistrer un commentaire