SQLiteLog在Android中使用Sqllite数据库没有这样的表

时间:2016-12-22 12:29:00

标签: android database sqlite sql-like

enter image description here 通过使用资产文件夹,我们正在读取数据,即基于搜索关键字的地址详细信息: 这是我的代码

 private SQLiteDatabase db;
    private Cursor c;
 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    et_search = (EditText) findViewById(R.id.et_search);
    img = (ImageView) findViewById(R.id.img_search);
    list = (ListView) findViewById(R.id.list_search);

    db = openOrCreateDatabase("sample", Context.MODE_PRIVATE, null);


    img.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            search_keyword = et_search.getText().toString();
            arr_data = new ArrayList<ListItems>();
            if (isValid()) {
               SELECT_SQL = "SELECT  ROWID AS _id,* FROM Addresses where Type LIKE '%" + search_keyword + "%'";

                Log.d("daatt",SELECT_SQL);
                try {
                    c = db.rawQuery(SELECT_SQL, null);
                    c.moveToFirst();
                    showRecords();

                } catch (SQLiteException e) {
                    Toast.makeText(getApplicationContext(), "No Data", Toast.LENGTH_LONG).show();
                }

            }

        }
    });


}

private void showRecords() {

        String ugName = c.getString(c.getColumnIndex("Name"));
        String ugaddress = c.getString(c.getColumnIndex("Address"));
        String ugtype = c.getString(c.getColumnIndex("Type"));

        ListItems items = new ListItems();

        // Finish reading one raw, now we have to pass them to the POJO
        items.setName(ugName);
        items.setAddress(ugaddress);
        items.setType(ugtype);

        // Lets pass that POJO to our ArrayList which contains undergraduates as type
        arr_data.add(items);
    }
    ListDataAdapter adapter = new ListDataAdapter(arr_data);
    list.setAdapter(adapter);

    if (c != null && !c.isClosed()) {
        int count = c.getCount();
        c.close();
    }

    Log.d("ListData", "" + arr_data);

}


private boolean isValid() {
    if (search_keyword.length() == 0) {
        Toast.makeText(getApplicationContext(), "please enter valid key word", Toast.LENGTH_LONG).show();
        return false;
    }
    return true;
}

对于第一个版本,我们使用列表适配器加载了成功的数据 但在清洁项目之后,&amp;重建项目显示没有这样的表格预测

请指导我们,我们错了 提前谢谢

1 个答案:

答案 0 :(得分:1)

据我所知,你所指的表名为ListOfAddress,不是吗?你的SQL是:

  

SELECT_SQL =“SELECT ROWID AS _id,* FROM地址,其中Type LIKE'%”+ search_keyword +“%'”;

我可能错了,但我会仔细检查查询。