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

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日

悬赏问题

  • ¥100 微信小程序跑脚本授权的问题
  • ¥100 房产抖音小程序苹果搜不到安卓可以付费悬赏
  • ¥15 STM32串口接收问题
  • ¥15 腾讯IOA系统怎么在文件夹里修改办公网络的连接
  • ¥15 filenotfounderror:文件是存在的,权限也给了,但还一直报错
  • ¥15 MATLAB和mosek的求解问题
  • ¥20 修改中兴光猫sn的时候提示失败
  • ¥15 java大作业爬取网页
  • ¥15 怎么获取欧易的btc永续合约和交割合约的5m级的历史数据用来回测套利策略?
  • ¥15 有没有办法利用libusb读取usb设备数据