SQLite检查数据并从数据库表中获取数据

时间:2013-06-28 12:13:38

标签: android sqlite

我是初学者。我只想制作一个程序,用户将在我的EditText上输入数据,然后程序将从数据库中搜索这些数据。如果找到,它将获得与数据(用户输入的)相关的所有数据,然后它们将显示在我的TextView中。我写了一些代码,但它没有用。请帮帮我。

“bNum”是我表中的coloumn名称。

这是我的代码的一部分:

final EditText bnumber = (EditText) findViewById(R.id.editText1);
    Button search = (Button) findViewById(R.id.button1);
    search.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            try {
                DataSearch((bnumber.getText()).toString());

            } finally {
                book.close();
            }

        }
    });

}

private static final String[] SELECT = { "bNum" };
protected void DataSearch(String s) {
    SQLiteDatabase db = book.getReadableDatabase();
    Cursor c = db.query("btable", SELECT, null, null, null, null, null);
    while (c.moveToNext()) {
        if (c.toString() == s)
        ShowingData(c);

    }}
       private void ShowingData(Cursor c) {


    StringBuilder builder = new StringBuilder("Information\n");
    String pName = c.getString(c.getColumnIndex("pName"));
    String price = c.getString(c.getColumnIndex("price"));
    String quantity = c.getString(c.getColumnIndex("quantity"));
    builder.append(pName).append("Product Name:");
    builder.append(price).append("Price:");
    builder.append(quantity).append("Quantity:");

    TextView result = (TextView) findViewById(R.id.textView1);
    result.setText(builder);

}}

2 个答案:

答案 0 :(得分:1)

使用equals()方法

进行字符串比较

尝试替换

if (c.toString() == s)

if (c.toString().equals(s))

答案 1 :(得分:1)

我看不到您的数据库,也不知道您的查询方法是如何工作的。但是,例如,如果您使用返回每行中所有值的游标对象查询整个数据库,这应该可以工作:

    protected void DataSearch(String s) {
       SQLiteDatabase db = book.getReadableDatabase();
       Cursor c = db.getAllDatas();
       c.moveToFirst();
    while (c.moveToNext()) {
      if (c.getString(0).equalsIgnoreCase(s))
      ShowingData(c);

   }}

getAllDatas()应该是一个从数据库中获取所有数据的方法。