从SQLite获取数据仅包含单个数据行

时间:2014-03-01 04:48:39

标签: android sqlite

在我的应用中,我将数据存储到SQLite ,现在我正在尝试从SQLite获取活动数据

根据要求,我只需要一次存储单个数据,而我的表只包含不超过一行的单个数据行。

所以我想如果表格有数据行,那么获取数据并以登录 LoginActivity.java onCreate(..)中显示 / p>

获得:

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);
                }
              }

3 个答案:

答案 0 :(得分:2)

从操作要求.. 像这样改变你的方法..

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;
    }
}

答案 1 :(得分:0)

你的SelectData方法接受一个字符串参数(strOperatorID)但是你没有参数调用它,所以很明显它找不到。

顺便说一句,您应该尊重方法的Java命名约定(即不以大写字母开头)

答案 2 :(得分:0)

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();
}