I think problem is solved by mistake I had pass "roomSuffix" inside insertToRoomTable1() insted of "rx". Thanks
On Dec 4, 12:10 pm, "pramod.deore" <[email protected]> wrote: > Hi everyone, > > I have a table (RoomName) who has 3 columns (RoomID, RoomName, > RoomSuffix). RoomID is primary field. what I want is if suppose user > enter duplicate RomName then that Rooms RoomSuffix value should be > increased by 1. > Suppose there are following record already > > RoomID RoomName RoomSuffix > 1 Hall 0 > 2 Kitchen 0 > 3 BedRoom 0 > > Now if user enter another Hall then d/b must be > > 4 Hall 1 > 5 Hall 2 > 6 Kitchen 1 > > I have following code > > public class AddRoom extends Activity > { > ListView roomList; > String[] roomArray = {"Hall","Kitchen","BedRoom","Dining > Hall","BathRoom","Study Room","Guest Room","Other"}; > String roomName,roomname; > int roomSuffix,roomSX; > boolean roomExist; > String SAMPLE_DBNAME = "NewHomeAutoDataBase"; > String ROOM_TABLE_NAME = "RoomTable"; > SQLiteDatabase sampleDB = null; > public void onCreate(Bundle savedInstanceState) > { > System.out.println ("First stmt in onCreate of AddRoom"); > super.onCreate(savedInstanceState); > setContentView(R.layout.addroom); > > roomList = (ListView)findViewById(R.id.list); > ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, > R.layout.listitem, roomArray); > roomList.setAdapter(adapter); > > //add listener on which list item user click > > roomList.setOnItemClickListener(new OnItemClickListener() > { > @Override > public void onItemClick(AdapterView<?> parent, View > view, int > position,long id) > { > roomName = (String) > roomList.getItemAtPosition(position); > System.out.println ("User click on > "+roomList.getItemAtPosition(position)); > > if (roomName.equalsIgnoreCase("other")) > { > System.out.println ("Inside if > condition. i.e User click on other > room"); > } > > createRoomTable(); > roomExist = checkRoomExistOrNot(roomName); > > if (roomExist) > { > System.out.println ("Room existed"); > int test = getRoomSuffix(roomName); > roomSX = ++test; > System.out.println ("Value return by > getRoomSuffix()"+roomSX); > insertToRoomTable1(roomName,roomSX); > return; > } > > /* > * Now add room to roomtable > */ > insertToRoomTable(roomName); > } > }); > } > > public void createRoomTable() > { > /* This method first create room table if it is not exist > * table has 3 columns 1.RoomID 2.RoomName 3.RoomSuffix > */ > > sampleDB = this.openOrCreateDatabase(SAMPLE_DBNAME, > MODE_PRIVATE, > null); > > sampleDB.execSQL("CREATE TABLE IF NOT EXISTS " + > ROOM_TABLE_NAME + > " (RoomID integer primary key autoincrement,RoomName > VARCHAR,RoomSuffix integer);"); > > sampleDB.close(); > } > > public boolean checkRoomExistOrNot(String rName) > { > /* check inside room table for room exist or not. > * > */ > System.out.println ("Here rName is "+rName); > sampleDB = this.openOrCreateDatabase(SAMPLE_DBNAME, > MODE_PRIVATE, > null); > Cursor c = sampleDB.rawQuery("SELECT RoomName FROM " > +ROOM_TABLE_NAME , null); > > if (c != null ) > { > System.out.println ("Total number of records in room table > are"+c.getCount()); > > if (c.moveToFirst()) > { > do > { > roomname = > c.getString(c.getColumnIndex("RoomName")); > > System.out.println ("RoomName is "+roomname); > > if (roomname.equalsIgnoreCase(rName)) > { > System.out.println ("Room Exist in > room table"); > > return true; > } > > } > while (c.moveToNext()); > } > } > > c.close(); > sampleDB.close(); > return false; > > } > > public void insertToRoomTable(String rName) > { > sampleDB = this.openOrCreateDatabase(SAMPLE_DBNAME, > MODE_PRIVATE, > null); > > sampleDB.execSQL("INSERT INTO " + > ROOM_TABLE_NAME + > " Values (null,'"+rName+"','"+roomSuffix+"');"); > > System.out.println ("Inserted values into RoomTable are"+rName > +":"+roomSuffix); > sampleDB.close(); > } > > public void insertToRoomTable1(String rName,int rx) > { > sampleDB = this.openOrCreateDatabase(SAMPLE_DBNAME, > MODE_PRIVATE, > null); > > sampleDB.execSQL("INSERT INTO " + > ROOM_TABLE_NAME + > " Values (null,'"+rName+"','"+roomSuffix+"');"); > > System.out.println ("Inserted values into RoomTable are"+rName > +":"+roomSuffix); > sampleDB.close(); > } > > public int getRoomSuffix(String name) > { > sampleDB = this.openOrCreateDatabase(SAMPLE_DBNAME, > MODE_PRIVATE, > null); > Cursor c = sampleDB.rawQuery("SELECT RoomSuffix FROM " > +ROOM_TABLE_NAME +" WHERE RoomName= '"+name+"'" , null); > if (c != null ) > { > System.out.println ("Total number of records for RoomSuffix > are"+c.getCount()); > > if (c.moveToFirst()) > { > do > { > roomSuffix = > c.getInt(c.getColumnIndex("RoomSuffix")); > > System.out.println ("RoomSuffix is > "+roomSuffix); > } > while (c.moveToNext()); > } > } > > c.close(); > sampleDB.close(); > > return roomSuffix; > > } > > } > > But my problem is that every time getRoomSuffix(String str) method > returns value 0. Instead of that it must return next suffix value. i.e > IF user entered 2nd time Hall entry then it must return 1, for 3rd > time 2 and so on.... > > Thanks -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

