Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android SQLITE搜索列_Android_Sql_Search - Fatal编程技术网

Android SQLITE搜索列

Android SQLITE搜索列,android,sql,search,Android,Sql,Search,我试图在数据库中搜索字符串。我是SQLite的新手,请原谅我的无知 我按如下方式设置呼叫 public void GetContact() { //---get a contact--- EditText mEdit = (EditText)findViewById(R.id.editTextnum); mEdit.setText("A000021"); db.open(); Cursor c = db.getAsset(mEdit.getText());

我试图在数据库中搜索字符串。我是SQLite的新手,请原谅我的无知 我按如下方式设置呼叫

public void GetContact() {
    //---get a contact---
    EditText mEdit = (EditText)findViewById(R.id.editTextnum);
    mEdit.setText("A000021");
   db.open();
   Cursor c = db.getAsset(mEdit.getText());
   if (c.moveToFirst())        
    DisplayContact(c);
   else
   Toast.makeText(this, "No contact found", Toast.LENGTH_LONG).show();
   db.close();
}
public Cursor getAsset(Editable strname) throws SQLException 
{
    Cursor mCursor =
            db.query(true, DATABASE_TABLE, new String[] {KEY_ROWID,KEY_NAME, KEY_EMAIL,KEY_FLOOR,KEY_ROOMID,KEY_SCHOOLID,KEY_CONDITION,KEY_ASSETNUMBER,KEY_ASSETCATEGORY,KEY_ASSETTYPE,KEY_ADDITIONAL,KEY_MANUFACTURER,KEY_TYPE,KEY_SERIAL,KEY_INFO,KEY_QUANTITY,KEY_COMMENTS,KEY_INSTALL,KEY_VERIFIED}, KEY_ASSETNUMBER + "=" + strname, null,null, null, null, null);
    if (mCursor != null) {
        mCursor.moveToFirst();
    }
    return mCursor;
}
这将使用字符串“A000021”填充edittext,然后使用edittext的内容作为搜索字符串在DB助手“getAsset”中运行该过程

获取资产的过程如下所示

public void GetContact() {
    //---get a contact---
    EditText mEdit = (EditText)findViewById(R.id.editTextnum);
    mEdit.setText("A000021");
   db.open();
   Cursor c = db.getAsset(mEdit.getText());
   if (c.moveToFirst())        
    DisplayContact(c);
   else
   Toast.makeText(this, "No contact found", Toast.LENGTH_LONG).show();
   db.close();
}
public Cursor getAsset(Editable strname) throws SQLException 
{
    Cursor mCursor =
            db.query(true, DATABASE_TABLE, new String[] {KEY_ROWID,KEY_NAME, KEY_EMAIL,KEY_FLOOR,KEY_ROOMID,KEY_SCHOOLID,KEY_CONDITION,KEY_ASSETNUMBER,KEY_ASSETCATEGORY,KEY_ASSETTYPE,KEY_ADDITIONAL,KEY_MANUFACTURER,KEY_TYPE,KEY_SERIAL,KEY_INFO,KEY_QUANTITY,KEY_COMMENTS,KEY_INSTALL,KEY_VERIFIED}, KEY_ASSETNUMBER + "=" + strname, null,null, null, null, null);
    if (mCursor != null) {
        mCursor.moveToFirst();
    }
    return mCursor;
}
当我运行它时,它说

android.database.sqlite.SQLiteException: no such column: A000021 (code 1): , while compiling: SELECT DISTINCT _id, SITE, BUILDING, FLOOR, ROOMID, SCHOOLID, CONDITION, ASSETNUMBER, ASSETCATEGORY, ASSETTYPE, ADDITIONAL, MANUFACTURER, TYPEMODEL, SERIALNUMBER, INFORMATION, QUANTITY, COMMENTS, INSTALLDATE, VERIFIED FROM contacts WHERE ASSETNUMBER=A000021
该列称为ASSETNUMBER。它是一个文本列,我希望返回ASSETNUMBER为A000021的记录

知道我哪里出错了吗?

试着使用函数


您可以发布用于创建表的代码吗?非常感谢,虽然它很简单,但我的原始查询缺少单引号