0

このコードは私にとってはうまく機能し、すべての従業員の情報を1つずつ表示します。しかし、私は与えられたIDの1人の従業員の情報だけを見たいと思っています. どうやってやるの 。

c=myDbHelper.query("EMP_TABLE", null, null, null, null,null, null);
        if(c.moveToFirst()) 
        {
            do {

                Toast.makeText(CopyDbActivity.this,
                        "_id: " + c.getString(0) + "\n" +
                        "E_NAME: " + c.getString(1) + "\n" +
                        "E_AGE: " + c.getString(2) + "\n" +
                        "E_DEPT:  " + c.getString(3),
                        Toast.LENGTH_LONG).show();

            } while (c.moveToNext());
        }
4

2 に答える 2

1

Sqlite ヘルパー クラスに getRecord メソッドを用意する

public Cursor getRecord(long rowId) throws SQLException
   {
   Cursor cursor = db.query(EMP_TABLE, new String[] { _id,
            E_NAME, E_AGE,E_DEPT }, _id + "=?",
            new String[] { String.valueOf(rowId) }, null, null, null, null);
   if (cursor != null) {
    cursor.moveToFirst();

    }
   return mCursor;
    }

それで

   db.open(); 
   Cursor c = db.getRecord(1); // pass the record id
   Toast.makeText(CopyDbActivity.this,
                    "_id: " + c.getString(0) + "\n" +
                    "E_NAME: " + c.getString(1) + "\n" +
                    "E_AGE: " + c.getString(2) + "\n" +
                    "E_DEPT:  " + c.getString(3),
                    Toast.LENGTH_LONG).show();  
于 2013-06-19T18:16:19.197 に答える
0

メソッドの 3 番目と 4 番目のパラメーターをSQLiteDatabase query()使用して、SQLWHERE句を形成できます。

たとえば、where _idis 2のすべての行を取得するには、次のようにします。

String[] selectionArgs = {"2"};
c=myDbHelper.query("EMP_TABLE", null, "_id=?", selectionArgs, null, null, null);
于 2013-06-19T18:06:49.220 に答える