android - 从 SQLite 中获取数据只包含单个数据行

标签 android sqlite

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

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

所以我想如果表有数据行然后在 LoginActivity.javaonCreate(..)获取数据并在表单中显示/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);
                }
              }

最佳答案

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

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

关于android - 从 SQLite 中获取数据只包含单个数据行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22110270/

相关文章:

java - 如何在 Java 中使用 XPath 从 XML 中获取特定节点?

java - 如何从 Google 应用程序帐户访问 Google Play Developers Console

c++ - SQLite——C++多线程读写

java - 在android studio中查看sqlite数据库

c++ - 为什么 SQLite 不让我查询特定的 ATTACHED 数据库?

android - 如何使用 Activity 框打开完整操作

android - ListActivity 和 Activity 之间有什么区别?

c++ - 多线程模式下的sqlite3 : what exactly is unsafe to perform?

java - Eclipse Paho Mqtt Client 是否保留所有已发布的消息,直到它们被代理在 QoS-2 下确认交付?

bash - 如何在 bash 中转义 sqlite3 查询参数?