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日

悬赏问题

  • ¥20 win11账户锁定时间设为0无法登录
  • ¥45 C#学生成绩管理系统
  • ¥15 VB.NET2022如何生成发布成exe文件
  • ¥30 matlab appdesigner私有函数嵌套整合
  • ¥15 vb6.0使用jmail接收smtp邮件并另存附件到D盘
  • ¥30 vb net 使用 sendMessage 如何输入鼠标坐标
  • ¥15 关于freesurfer使用freeview可视化的问题
  • ¥100 谁能在荣耀自带系统MagicOS版本下,隐藏手机桌面图标?
  • ¥15 求SC-LIWC词典!
  • ¥20 有关esp8266连接阿里云