Sun
Sun

Reputation: 6888

Fetch data from SQLite only contains single data row

In my app i am storing data to SQLite, and now i am trying to fetch that data from SQLite to activity.

as per requirement i just have to store single data at a time and my table will contain only single data row not more than one row.

so I want if table has data row then fetch data and show in form in onCreate(..) of LoginActivity.java

Getting:

The method SelectData(String) in the type myDBClass is not applicable for the arguments ()

myDBClass.java:

// Select Data
    public String[] SelectData(String strOperatorID) {
        // TODO Auto-generated method stub

         try {
            String arrData[] = null;    

             SQLiteDatabase db;
             db = this.getReadableDatabase(); // Read Data

             Cursor cursor = db.query(TABLE_NAME, new String[] { "*" }, 
                        "OperatorID=?",
                        new String[] { String.valueOf(strOperatorID) }, null, null, null, null);

                if(cursor != null)
                {
                    if (cursor.moveToFirst()) {
                        arrData = new String[cursor.getColumnCount()];

                        arrData[0] = cursor.getString(0); // DeviceID
                        arrData[1] = cursor.getString(1); // EmailID
                        arrData[2] = cursor.getString(2); // Event
                        arrData[3] = cursor.getString(3); // Operator
                        arrData[4] = cursor.getString(4); // EventOperator
                    }
                }

                cursor.close();
                db.close();
                return arrData;

         } catch (Exception e) {
            return null;
         }
    }

LoginActivity.java:-

public class LoginActivity extends Activity  {
    .................


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
        setContentView(R.layout.activity_login);

        btnLogout = (Button) findViewById(R.id.btnLogout);
        btnCamera = (Button) findViewById(R.id.btnCamera);
        btnGallery = (Button) findViewById(R.id.btnGallery);

            txtDeviceID = (TextView) findViewById(R.id.txtDeviceID);
            txtEmailID = (TextView) findViewById(R.id.txtEmailID);      
            txtEvent = (TextView) findViewById(R.id.txtEvent);  
            txtOperative = (TextView) findViewById(R.id.txtOperative);
            txtEventOperator = (TextView) findViewById(R.id.txtEventOperator);

             Intent intent = getIntent();
             deviceID = intent.getStringExtra("deviceID");
             emailID = intent.getStringExtra("emailID");
             event = intent.getStringExtra("name"); 
             operative = intent.getStringExtra("firstName");

             txtDeviceID.setText(deviceID);
             txtEmailID.setText(emailID);
             txtEvent.setText(event);
             txtOperative.setText(operative);
             txtEventOperator.setText(event + "  " + operative);

             strEvent = txtEvent.getText().toString();
             strOperative = txtOperative.getText().toString();

                // Dialog
                final AlertDialog.Builder adb = new AlertDialog.Builder(this);
                AlertDialog ad = adb.create();

                // new Class DB
                final myDBClass myDb = new myDBClass(this);

                // Save Data
                long saveStatus = myDb.InsertData(
                            txtDeviceID.getText().toString(),
                            txtEmailID.getText().toString(),
                            txtEvent.getText().toString(),
                            txtOperative.getText().toString(),
                            txtEventOperator.getText().toString()
                            );

                if(saveStatus <=  0)
                {
                  ad.setMessage("Error!! ");
                  ad.show();
                  return;
                }   

                // Show Data
                String arrData[] = myDb.SelectData();
                if(arrData != null)
                {
                    txtDeviceID.setText(arrData[1]);
                    txtEmailID.setText(arrData[2]);
                    txtEvent.setText(arrData[3]);
                    txtOperative.setText(arrData[4]);
                    txtEventOperator.setText(arrData[5]);
                }  

 if(txtEvent.getText().toString().equals("") && txtOperative.getText().toString().equals(""))
                {
                    Intent intentCall = new Intent(LoginActivity.this, LicenseListActivity.class);
                    startActivity(intentCall);
                }
              }

Upvotes: 1

Views: 1325

Answers (3)

Nitin
Nitin

Reputation: 258

public String[] SelectData() {
    // TODO Auto-generated method stub

    try {
        String arrData[] = new String[5];

        SQLiteDatabase db;
        db = this.getReadableDatabase(); // Read Data

        Cursor cursor = db.query(TABLE_NAME, null, null, null, null,
                null, null);

        if (cursor != null) {
            if (cursor.moveToFirst()) {
do{

                arrData[0] = cursor.getString(0); // DeviceID
                arrData[1] = cursor.getString(1); // EmailID
                arrData[2] = cursor.getString(2); // Event
                arrData[3] = cursor.getString(3); // Operator
                arrData[4] = cursor.getString(4); // EventOperator
          } while (cur.moveToNext()); 
 }
        }


        return arrData;

    } catch (Exception e) {

        return null;
    }finally{
  cursor.close();
        db.close();
}

Upvotes: 0

kalyan pvs
kalyan pvs

Reputation: 14590

From the op requirement.. change your method like this..

public String[] SelectData() {
    // TODO Auto-generated method stub

    try {
        String arrData[] = new String[5];

        SQLiteDatabase db;
        db = this.getReadableDatabase(); // Read Data

        Cursor cursor = db.query(TABLE_NAME, null, null, null, null,
                null, null);

        if (cursor != null) {
            if (cursor.moveToFirst()) {

                arrData[0] = cursor.getString(0); // DeviceID
                arrData[1] = cursor.getString(1); // EmailID
                arrData[2] = cursor.getString(2); // Event
                arrData[3] = cursor.getString(3); // Operator
                arrData[4] = cursor.getString(4); // EventOperator
            }
        }

        cursor.close();
        db.close();
        return arrData;

    } catch (Exception e) {
        return null;
    }
}

Upvotes: 2

Gorkk
Gorkk

Reputation: 1056

Your SelectData method takes a String argument (strOperatorID) but you are calling it with no argument, so obviously it cannot be found.

By the way you should respect Java naming conventions for your methods (i.e. not starting with upper case character)

Upvotes: 0

Related Questions