java.lang.IllegalArgumentException: the bind value at index 1 is null

本文解析了在Android项目中遇到的java.lang.IllegalArgumentException:thebindvalueatindex1isnull错误,详细阐述了问题根源在于未从SP读取登录用户名,并提供了具体的解决步骤,包括正确使用SharedPreferences获取数据及SQL查询语句的检查。

关于java.lang.IllegalArgumentException: the bind value at index 1 is null的解决办法

今日在写小项目时出现此问题,原因是因为没有获取sp中储存的登录用户名

//从sp种获取登录时的用户名
spUserName = AnalysisUtils.readLoginUserName(this);

关于AnalysisUtils类

//从sp 中获取登录时的用户名
public class AnalysisUtils {
    public static String readLoginUserName(Context context){
        SharedPreferences sp = context.getSharedPreferences("username", Context.MODE_PRIVATE);
        String userName = sp.getString("loginUserName","");
        return userName;
    }

在需要引用的时候出现问题

bean = DBUtils.getInstance(this).getUserInfo(spUserName);

究其根源出现在获取个人资料的方法里需要用到spUserName

//获取个人资料
public UserBean getUserInfo(String userName){
    String sql = "SELECT * FROM "+ SQLiteHelper.U_USERINFO +" WHERE userName = ?";
    Cursor cursor = db.rawQuery(sql, new String[]{userName});
    UserBean bean = null;
    while (cursor.moveToNext()){
        bean = new UserBean();
        bean.userName = cursor.getString(cursor.getColumnIndex("userName"));
        bean.nickName = cursor.getString(cursor.getColumnIndex("nickName"));
        bean.sex = cursor.getString(cursor.getColumnIndex("sex"));
        bean.signature = cursor.getString(cursor.getColumnIndex("signature"));
    }
    cursor.close();
    return bean;
}

粗心阴差阳错出现了此问题

//此处以上是我自己的问题
导致其出现还有sql语句的问题,出现此问题,优先查看自己的sql语句

//此处为第一种查询方法

public static final String U_USERINFO = "userinfo";
String sql = "SELECT * FROM "+ SQLiteHelper.U_USERINFO +" WHERE userName = ?";
Cursor cursor = db.rawQuery(sql, new String[]{userName});

//此处为第二种写法

Cursor cursor = db.query(SQLiteHelper.U_USERINFO, null,"userName = ?", new String[]{userName}, null, null, null);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值