0

This is my sqlite class file

public class MySqlite extends SQLiteOpenHelper {

    private static int DATABASE_VERSION = 1;
    private static String DATABASE_NAME = "student_info";

    public MySqlite(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
        // TODO Auto-generated constructor stub
    }

    @Override
    public void onCreate(SQLiteDatabase sqlite) {
        // TODO Auto-generated method stub
        String query = "CREATE TABLE student_datatable(first_name Text, last_name Text, gender Text, street Text, city Text, contact Text)";
        sqlite.execSQL(query);
    }

    @Override
    public void onUpgrade(SQLiteDatabase sqlite, int arg1, int arg2) {
        // TODO Auto-generated method stub
        sqlite.execSQL("DROP TABLE IF EXISTS student_datatable");
        onCreate(sqlite);
    }

    public void addrecord(String firstname, String lastname, String radiovalue,
            String street, String city, String contact) {
        SQLiteDatabase sqlite = this.getWritableDatabase();
        ContentValues cv = new ContentValues();
        cv.put("first_name", firstname);
        cv.put("last_name", lastname);
        cv.put("gender", radiovalue);
        cv.put("street", street);
        cv.put("city", city);
        cv.put("contact", contact);

        sqlite.insert("student_datatable", null, cv);
        sqlite.close();
    }

    public String searchrecord(String firstname) 
    {
        SQLiteDatabase sql = this.getReadableDatabase();
        String lastnamefromtable = null;
        String param[] = new String[1];
        param[0] = firstname;
        Cursor c = sql.rawQuery(
                "Select * from student_datatable where first_name=?", param);
        if (c.moveToFirst()) {
            do {
                lastnamefromtable = c.getString(c.getColumnIndex("last_name"));

            } while (c.moveToNext());
        }
        return lastnamefromtable;
    }

    public void deleterecord(String firstname) {
        String Table_name = "student_info";
        String column_name = "first_name";
        SQLiteDatabase sql = this.getWritableDatabase();
        String lastnamefromtable = null;
        String param[] = new String[1];
        param[0] = firstname;
        sql.execSQL("DELETE FROM student_info where first_name=?", param);
    }

}

here i am fetching only lastname according to firstname, but i want to fetch other value also like gender,street,city & contact from database to cursor and from cursor to my following activity

public class Searchrecord extends Activity {

    EditText firstname;
    TextView getlastname;
    MySqlite mysql;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.searchrecord);
        firstname=(EditText) findViewById(R.id.editText1);
        getlastname=(TextView) findViewById(R.id.textView2);
        mysql=new MySqlite(getApplicationContext());
    }

    public void search(View v)
    {
        if(firstname.getText().toString().equals(""))
        {
            Toast.makeText(getApplicationContext(), "Please Provide value", Toast.LENGTH_SHORT).show();
        }
        else
        {
            String value=mysql.searchrecord(firstname.getText().toString());
            getlastname.setText(value);
        }

    }

}
1
  • in the same way as you did retrieved the last name, your query returns all columns and your code only reads 1. Commented Nov 27, 2013 at 13:25

2 Answers 2

1

please try follwing code

        public ArrayList<String> searchrecord(String firstname) 
     {
     ArrayList<String> allitems=new ArrayList<String>();
    SQLiteDatabase sql = this.getReadableDatabase();
    String lastnamefromtable = null;
   String param[] = new String[1];
   param[0] = firstname;
   Cursor c = sql.rawQuery(
        "Select * from student_datatable where first_name=?", param);
    if (c.moveToFirst()) {
    do {
        lastnamefromtable = c.getString(c.getColumnIndex("last_name"));
      allitems.add(lastnamefromtable )

    } while (c.moveToNext());
    }
  return allitems;
 }

inMain activity

ArrayList<String> allitems=db.searchrecord(String firstname);
iterate for loop
Sign up to request clarification or add additional context in comments.

Comments

0

Replace your methods like below,

public Bundle searchrecord(String firstname) 
{
    SQLiteDatabase sql = this.getReadableDatabase();
    Bundle cursorData = new Bundle();
    String param[] = new String[1];
    param[0] = firstname;
    Cursor c = sql.rawQuery(
            "Select * from student_datatable where first_name=?", param);
    if (c.moveToFirst()) {
        do {

            bundle.putString("last_name", c.getString(c.getColumnIndex("last_name"));
            bundle.putString("gender", c.getString(c.getColumnIndex("gender"));  
            bundle.putString("street", c.getString(c.getColumnIndex("street"));  
            bundle.putString("city", c.getString(c.getColumnIndex("city"));  
            bundle.putString("contact", c.getString(c.getColumnIndex("contact"));  

        } while (c.moveToNext());
    }
    return cursorData;
}

public void search(View v)
{
    if(firstname.getText().toString().equals(""))
    {
        Toast.makeText(getApplicationContext(), "Please Provide value", Toast.LENGTH_SHORT).show();
    }
    else
    {
        Bundle bundle=mysql.searchrecord(firstname.getText().toString());
        getlastname.setText(bundle.get("last_name"));
        String gender=bundle.get("gender");
        String contact=bundle.get("contact");
        String street=bundle.get("street");
        String city=bundle.get("city");

    }

}

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.