巽诹 2022-12-11 15:33 采纳率: 54.5%
浏览 111
已结题

Android sqlite数据库读取问题

问题遇到的现象和发生背景

在实现读取写好的sqlite数据表并显示到AlertDialog对话框时读取错误

遇到的现象和发生背景,请写出第一个错误信息

(获取两个EditText中用户输入的数据,并且根据输入的数据去查询)

img

用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%

用户输入的部分以及查询的部分如下

Button chaxunneirong = findViewById(R.id.chaxun_button);
        EditText editText1 = findViewById(R.id.chaxunkuang_1);
        EditText editText2 = findViewById(R.id.chengshikuang_1);
        chaxunneirong.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String chaxundata = editText1.getText().toString();//用户内容输入获取
                String chaxundata1 = editText2.getText().toString();
                SQLiteDatabase db = dbHelper.getWritableDatabase();//获取数据库对象
                Cursor cursor = db.rawQuery("select * from fenlei where shi = ? and (mingzi like ? or leibie like ?)",new String[]{chaxundata1,"%"+chaxundata+"%","%"+chaxundata+"%"},null);
                String massage_1 = null;
                String massage_2 = null;
                String massage_3 = null;
                String massage_4 = null;
                if (cursor.moveToFirst()) {
                    do {
                        massage_1 = cursor.getString(cursor.getColumnIndexOrThrow("shi"));
                        massage_2 = cursor.getString(cursor.getColumnIndexOrThrow("leibie"));
                        massage_3 = cursor.getString(cursor.getColumnIndexOrThrow("mingzi"));
                        massage_4 = cursor.getString(cursor.getColumnIndexOrThrow("caizhi"));
                    } while (cursor.moveToNext());
                }
                cursor.close();
                //将获取的内容显示到对话框
                AlertDialog alertDialog1 = new AlertDialog.Builder(chaxun.this)
                        .setTitle(chaxundata)//标题
                        .setMessage(massage_1 + " " + massage_2 + " " + massage_3 + " " + massage_4)//内容
                        .setIcon(R.mipmap.ic_launcher)//图标
                        .create();
                alertDialog1.show();
            }

运行结果及详细报错内容

使用sqlite expert查询时没有问题

img

我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%

下面是已经写好的数据

img

尝试过使用query以及rawQuery两种方法,sqlite expert对数据库操作没有任何问题,但Android studio这查询时就出现问题

  • 写回答

4条回答 默认 最新

  • 不会写代码的猴子 Android领域优质创作者 2022-12-11 16:14
    关注
    
    new String[]{chaxundata1,"%"+chaxundata+"%","%"+chaxundata+"%"}
    

    你最好把这个打印出来看看,是不是合法的数据库查询语句呢?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月11日
  • 已采纳回答 12月11日
  • 赞助了问题酬金15元 12月11日
  • 创建了问题 12月11日

悬赏问题

  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码