Android 我无法从sqlite获取特定数据?请帮帮我

Android 我无法从sqlite获取特定数据?请帮帮我,android,Android,!![这是我在DBHelper中查找方法的代码].class[1] public StringBuilder findData(String find) { StringBuilder output = new StringBuilder("Our data is:\n"); Cursor c = ourHelper.getReadableDatabase().rawQuery("SELECT abbrevaition FROM abbrtab WHERE

!![这是我在DBHelper中查找方法的代码].class[1]

public StringBuilder findData(String find)
{    
    StringBuilder output = new StringBuilder("Our data is:\n");
    Cursor c = ourHelper.getReadableDatabase().rawQuery("SELECT abbrevaition FROM        abbrtab WHERE acronym"+" =  ?  ;", new String[]{find});
    String remarks=" ";
    int iRemarks = c.getColumnIndex(KEY_ABBR);
    if( c.moveToFirst() && c.getCount()>0 )
    {
        remarks= c.getString(iRemarks);
    if(remarks.isEmpty())
        {
            Toast.makeText(ourContext, "not", Toast.LENGTH_LONG).show();
        }
    output.append(remarks); 
    }
    c.close();
    return output;
}
!![这是Main.java中用于从SQLite3获取数据的代码。当我从abbrtab提供查询select*时,它将执行。并应用where条件,则我不会获取任何东西。][1]

@Override
public void onClick(View v) 
{
    Toast.makeText(getApplicationContext(), String.valueOf("Hi"),Toast.LENGTH_LONG).show();
    // TODO Auto-generated method stub
    ASNDBAdapter info = new ASNDBAdapter(AllBranches.this);
    info.open();
    String data = et.getText().toString();
    String result = info.findData(data).toString();
    Intent i = new Intent(AllBranches.this, ViewData.class);
    i.putExtra("my_data", result);
    startActivity(i);
    Toast.makeText(getApplicationContext(), String.valueOf(result),
                            Toast.LENGTH_LONG).show();
    info.close();

}

要在查询中获取参数值,必须使用like?:

对于这样一个简单的查询,您不需要使用rawQuery,只需要使用

您还必须确保列名是正确的


尝试这种方法。

要将参数值输入查询,必须使用like?:

public StringBuilder findData(String find)
    {    
        StringBuilder output = new StringBuilder("Our data is:\n");
        Cursor c = ourHelper.getReadableDatabase().query("abbrtab", new String[] {"abbrevaition"},"acronym" +"="+find, null, null, null, null);
        String remarks=" ";
        int iRemarks = c.getColumnIndex(KEY_ABBR);
        if( c.moveToFirst() && c.getCount()>0 )
        {
            remarks= c.getString(iRemarks);
        if(remarks.isEmpty())
            {
                Toast.makeText(ourContext, "not", Toast.LENGTH_LONG).show();
            }
        output.append(remarks); 
        }
        c.close();
        return output;
    }
对于这样一个简单的查询,您不需要使用rawQuery,只需要使用

您还必须确保列名是正确的

这样试试

public StringBuilder findData(String find)
    {    
        StringBuilder output = new StringBuilder("Our data is:\n");
        Cursor c = ourHelper.getReadableDatabase().query("abbrtab", new String[] {"abbrevaition"},"acronym" +"="+find, null, null, null, null);
        String remarks=" ";
        int iRemarks = c.getColumnIndex(KEY_ABBR);
        if( c.moveToFirst() && c.getCount()>0 )
        {
            remarks= c.getString(iRemarks);
        if(remarks.isEmpty())
            {
                Toast.makeText(ourContext, "not", Toast.LENGTH_LONG).show();
            }
        output.append(remarks); 
        }
        c.close();
        return output;
    }
这里,abbrtab是表名,abbrevaition是字段名

这里abbrtab是表名,abbrevaition是字段名。

是不是SELECT语句中的字段abbrevaition拼写错误?是不是SELECT语句中的字段abbrevaition拼写错误?
public StringBuilder findData(String find)
    {    
        StringBuilder output = new StringBuilder("Our data is:\n");
        Cursor c = ourHelper.getReadableDatabase().query("abbrtab", new String[] {"abbrevaition"},"acronym" +"="+find, null, null, null, null);
        String remarks=" ";
        int iRemarks = c.getColumnIndex(KEY_ABBR);
        if( c.moveToFirst() && c.getCount()>0 )
        {
            remarks= c.getString(iRemarks);
        if(remarks.isEmpty())
            {
                Toast.makeText(ourContext, "not", Toast.LENGTH_LONG).show();
            }
        output.append(remarks); 
        }
        c.close();
        return output;
    }