llf2580 2023-03-20 17:49 采纳率: 66.7%
浏览 28
已结题

Android Studio:SQLite数据库使用出错

我在MainActivity里放置了一个ViewPager,对应四个不同的Fragment.
创建了数据库DBHelper继承SQLiteOpenHelper。
现在我在一个fragment界面取出数据库内容时出现了错误,这是怎么回事呢?

// fragme代码, 构造方法和onCreateView()方法没动,只写了onActivityCreated()方法

public class CommunityFragment extends Fragment {
    DBHelper dbHelper = new DBHelper(getContext());
    public CommunityFragment() {
        // Required empty public constructor
    }
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_community, container, false);
        // Inflate the layout for this fragment
        return view;
    }
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
      
        // 取出用户账号
        SharedPreferences sp = getActivity().getSharedPreferences("LoginSp", Context.MODE_PRIVATE);
        String account = sp.getString("account",null);
        SQLiteDatabase dbread = dbHelper.getReadableDatabase();
        String sql = "select * from "+DBHelper.table_AccountTags+" where account='"+account+"'";
        Cursor cursor = dbread.rawQuery(sql,null);
        int flag = cursor.getCount();
        if(flag == 0) {// 没有标签的用户
        }
        else {// 有标签的用户
        }
        cursor.close();
        dbread.close();
   }
}

DBhelper创建了数据表

String sql = "CREATE TABLE IF NOT EXISTS "+DBHelper.table_AccountTags+"(_id INTEGER PRIMARY KEY AUTOINCREMENT,account VARCHAR(20),tag1 VARCHAR(20),tag2 VARCHAR(20),tag3 VARCHAR(20))";
db.execSQL(sql);

运行后app强制关闭,提示一下错误:

img


(CommunityFragment.java:68)这句是:SQLiteDatabase dbread = dbHelper.getReadableDatabase();

  • 写回答

3条回答 默认 最新

  • threenewbee 2023-03-20 18:23
    关注

    数据库打开没有成功,看看是不是数据库文件的问题

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

报告相同问题?

问题事件

  • 系统已结题 4月10日
  • 已采纳回答 4月2日
  • 创建了问题 3月20日

悬赏问题

  • ¥18 深度学习tensorflow1,ssdv1,coco数据集训练一个模型
  • ¥100 关于注册表摄像头和麦克风的问题
  • ¥30 代码本地运行正常,但是TOMCAT部署时闪退
  • ¥15 关于#python#的问题
  • ¥15 主机可以ping通路由器但是连不上网怎么办
  • ¥15 数据库一张以时间排好序的表中,找出多次相邻的那些行
  • ¥50 关于DynamoRIO处理多线程程序时候的问题
  • ¥15 kubeadm部署k8s出错
  • ¥15 Abaqus打不开cae文件怎么办?
  • ¥15 小程序准备上线,软件开发公司需要提供哪些资料给甲方