Reputation: 11
I created a simple DataBase in Android.but now the problem is facing me. I tried many time but did not solve this. The problem is when i want to insert new record if this record is already enterd or present already so it should to show me a toast that this record is already exist. DataBase class.java:
public class DatabaseOperation extends SQLiteOpenHelper {
public static final String DATABASE_NAME = "Student.db";
public static final String TABLE_NAME = "student_table";
public static final String COL_1 = "ID";
public static final String COL_2 = "NAME";
public static final String COL_3 = "PASS";
public static final String COL_4 = "CONTACT";
public static final String COL_5 = "NIC";
public static final String COL_6= "CONFIRM";
public DatabaseOperation(Context context) {
super(context, DATABASE_NAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table " + TABLE_NAME +" (ID INTEGER PRIMARY KEY
AUTOINCREMENT,NAME TEXT,PASS TEXT,CONFIRM TEXT,NIC INTEGER,CONTACT
INTEGER)");}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){
db.execSQL("DROP TABLE IF EXISTS "+TABLE_NAME);
onCreate(db);
}
public boolean insertData(String name,String pass,String confrim,String
contact,String nic)
{
SQLiteDatabase db = this.getWritableDatabase();
ContentValues cv=new ContentValues();
cv.put(COL_2,name);
cv.put(COL_3,pass);
cv.put(COL_6,confrim);
cv.put(COL_4,contact);
cv.put(COL_5,nic);
long result= db.insert(TABLE_NAME,null,cv);
if(result==-1)
return false;
else
return true;
}
public Cursor getAllData()
{
SQLiteDatabase db=this.getWritableDatabase();
Cursor res=db.rawQuery("select * from "+TABLE_NAME,null);
return res;
}
public boolean updateData(String id,String name,String pass,String
confrim,String contact,String nic)
{
SQLiteDatabase db=this.getWritableDatabase();
ContentValues cv=new ContentValues();
cv.put(COL_1,id);
cv.put(COL_2,name);
cv.put(COL_3,pass);
cv.put(COL_6,confrim);
cv.put(COL_4,contact);
cv.put(COL_5,nic);
db.update(TABLE_NAME,cv, "ID= ?",new String[]{id});
return true;
}
public Integer deletData(String id)
{
SQLiteDatabase db=this.getWritableDatabase();
return db.delete(TABLE_NAME, "ID = ?",new String[] {id});
}
}
And this is my Registration class
registr.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
boolean isInserted = myDb.insertData(name.getText().toString(), pass.getText().toString(),
confirm.getText().toString(), cont.getText().toString(), nic.getText().toString());
if (isInserted == true)
Toast.makeText(getBaseContext(), "INSERTED", Toast.LENGTH_SHORT).show();
else
Toast.makeText(getBaseContext(), "not inserted", Toast.LENGTH_SHORT).show();
}
});
next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
linearLayout.setVisibility(View.INVISIBLE);
}
});
load.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Cursor res= myDb.getAllData();
if(res.getCount()==0)
{
showMessage("error","no data found");
//Toast.makeText(getBaseContext(),"NO daTA found",Toast.LENGTH_SHORT).show();
}
StringBuffer buffer=new StringBuffer();
while(res.moveToNext())
{
buffer.append("id:"+res.getString(0)+"\n");
buffer.append("name:"+res.getString(1)+"\n");
buffer.append("nic:"+res.getString(4)+"\n");
buffer.append("contact:"+res.getString(5)+"\n\n");
}
showMessage("DATA",buffer.toString());
}
});
update.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
boolean isUpdated=myDb.updateData(id.getText().toString(),name.getText().toString(),pass.getText().toString(),confirm.getText().toString(),
cont.getText().toString(),nic.getText().toString());
if(isUpdated==true)
Toast.makeText(getBaseContext(),"updated",Toast.LENGTH_SHORT).show();
else
Toast.makeText(getBaseContext(),"not updated",Toast.LENGTH_SHORT).show();
}
});
delet.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Integer deletedRows=myDb.deletData(id.getText().toString());
if(deletedRows > 0)
Toast.makeText(getBaseContext(),"data
deleted",Toast.LENGTH_SHORT).show();
else
Toast.makeText(getBaseContext(),"not
deleted",Toast.LENGTH_SHORT).show();
}
});
}
public void showMessage(String title,String message)
{
AlertDialog.Builder builder=new AlertDialog.Builder(this);
builder.setCancelable(true);
builder.setTitle(title);
builder.setMessage(message);
builder.show();
}
}
Upvotes: 0
Views: 3220
Reputation: 137
Call this method inside Register button OnClickListener - To validate entered name and password already exists in database.
/**
* Used to check name and password is already in db.
*
* @param name
* @param pass
* @return true - name and password already exists in db.
* false - name and password not exists in db.
*/
public boolean dataAlreadyExists(String name, String pass) {
SQLiteDatabase db =...;
String query="SELECT COUNT(*) FROM " + TABLE_NAME + " WHERE NAME ="+name+ " PASS ="+pass+";";
long count = DatabaseUtils.queryNumEntries(db,query,null);
return count > 0;
}
Upvotes: 0
Reputation: 4620
The following piece of code (method) is quite handy with understandable parameters, Try it to check if some record already exists ... The following method will return true, when record is already there in your database. This method must be declared in your class DatabaseOperations
public boolean checkIfRecordExist(String nameOfTable,String columnName,String columnValue)
{
try
{
objDatabase=this.getReadableDatabase();
Cursor cursor=objDatabase.rawQuery("SELECT "+columnName+" FROM "+nameOfTable+" WHERE "+columnName+"='"+columnValue+"'",null);
if (cursor.moveToFirst())
{
objDatabase.close();
Log.d("Record Already Exists", "Table is:"+nameOfTable+" ColumnName:"+columnName);
return true;//record Exists
}
Log.d("New Record ", "Table is:"+nameOfTable+" ColumnName:"+columnName+" Column Value:"+columnValue);
objDatabase.close();
}
catch(Exception errorException)
{
Log.d("Exception occured", "Exception occured "+errorException);
objDatabase.close();
}
return false;
}
and call it in your activity like
boolean recordExists= mydb.checkIfRecordExist(DatabaseOperations.TABLE_NAME ,DatabaseOperations.COL_1 ,valueToBeChecked)
if(recordExists)
{
//do your stuff
}
Upvotes: 2