从自己的sqlite数据库中进行简单搜索

时间:2013-10-01 18:37:28

标签: java android sqlite

使用这个例子(https://stackoverflow.com/a/9109728/2808099)我连接了我的数据库。但我没有在这个数据库中组织搜索。我试图从EditText传达一个请求,并在textView(或ListView)中显示结果。

MainActivity

public void LoadAddress(View v)
    {

        searchAddress = editTextSearch.getText().toString();

        TestAdapter mDbHelper = new TestAdapter(this);
        mDbHelper.createDatabase();
        mDbHelper.open();


         Cursor testdata = mDbHelper.getTestData("SELECT * FROM Address " +searchAddress+"';", null);
        String address=testdata.getString(1).toString();
        textView.setText(address); 
        mDbHelper.close();
    }

TestAdapter

  public Cursor getTestData(String s, Object o)
{

    try
    {

        String sql ="SELECT * FROM Address";

        Cursor mCur = mDb.rawQuery(sql, null);
        if (mCur!=null)
        {
            mCur.moveToNext();
        }
        return mCur;
    }
    catch (SQLException mSQLException)
    {
        Log.e(TAG, "getTestData >>"+ mSQLException.toString());
        throw mSQLException;
    }
}

无论EditText的内容是什么,数据库的第一行输出

1 个答案:

答案 0 :(得分:0)

你总是打电话给“select * from Address”。这将总是查询一切。

String userInp = editTextSearch.getText().toString();

String query = "select * from Addresses where address = " + userInp; 

Cursor cursor= mDbHelper.getDb().rawQuery(query, null);

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

String output = cursor.getString(1);

Android的一个很好的教程是: http://www.androidhive.info/2011/11/android-sqlite-database-tutorial/

对于这样的简单查询,您可能需要考虑使用带参数的查询而不是原始sql。

您可以在这里学习SQL: http://www.w3schools.com/sql/