巽诹 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日

悬赏问题

  • ¥15 Catia V5 R20 64位 安装过程中选择orbix配置创建套接字失败
  • ¥100 C51单片机设计交通灯时出现的问题
  • ¥15 R语言爬虫的时候元素和园代码不一样怎么解决呀
  • ¥15 VS2022多项目启动有问题
  • ¥15 SQL删除添加数据后序号不连续问题。
  • ¥15 首次运行OmniEvent运行报错
  • ¥15 有没有人知道这个问题怎么解决
  • ¥15 comsol电力电缆载流量仿真
  • ¥15 webSocket可以接TCP socket接口吗
  • ¥60 mpi并行出错,CFD++计算