通过sqlite登录,提供错误

时间:2017-12-22 08:59:21

标签: android sqlite android-sqlite

我正在尝试在android中使用sqlite实现登录和注册,但我收到此错误..

               Caused by: android.database.sqlite.SQLiteException: no such column: User_Latitude (code 1): , while compiling: SELECT Name, Email, Phone, Password, City, User_Latitude, User_Longitude FROM userTbl WHERE Email=? and Password=?

LOGCAT错误所显示的行号的代码 - >

  DbHelper myDb=new DbHelper(getApplicationContext());
    Cursor cursor=myDb.login(email,password);//logcat also indicates errror here

与DbHelper中的登录方法对应的代码是 - >

public Cursor login(String email, String password){
 SQLiteDatabase sqLiteDatabase=getWritableDatabase();

    String[] columns={col_name,col_email,col_phn,col_pswd,col_city,col_lat,col_lng};
    String selection=col_email+"=? and "+col_pswd+"=?";
    String[] selArgs={email,password};
    return sqLiteDatabase.query(tbl_name,columns,selection,selArgs,null,null,null);

查询字符串是 - >

String create_query="CREATE TABLE "+tbl_name+"("+col_name+" varchar(60),"+col_email+" varchar(60) PRIMARY KEY,"+col_phn+" varchar(60),"+col_pswd+" varchar(60),"+col_city+" varchar(60),"+col_lat+" double,"+col_lng+" double);";

这是我的DbHelper.class->

    public class DbHelper extends SQLiteOpenHelper{
    private Context context;
    public static final String Db_name="UserDetails";
    public static final String tbl_name="userTbl";
    public static final String col_name="Name";
    public static final String col_email="Email";
    public static final String col_phn="Phone";
    public static final String col_pswd="Password";
    public static final String col_city="City";

    public static final String col_lat="User_Latitude";
    public static final String col_lng="User_Longitude";



    String create_query="CREATE TABLE "+tbl_name+"("+col_name+" varchar(60),"+col_email+" varchar(60) PRIMARY KEY,"+col_phn+" varchar(60),"+col_pswd+" varchar(60),"+col_city+" varchar(60),"+col_lat+" double,"+col_lng+" double);";
    public DbHelper(Context context) {

        super(context, Db_name, null, 1);
        this.context=context;
    }


    @Override
    public void onCreate(SQLiteDatabase db) {

      db.execSQL(create_query);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int i, int i1) {

    }


    public long dsignup(String name, String email, String phone, String password, String city,Double lattitude,Double longitude){
        SQLiteDatabase sqLiteDatabase=getWritableDatabase();
        ContentValues cVal=new ContentValues();
        cVal.put(col_name,name);
        cVal.put(col_email,email);
        cVal.put(col_phn,phone);
        cVal.put(col_pswd,password);
        cVal.put(col_city,city);
        cVal.put(col_lat,lattitude);
        cVal.put(col_lng,longitude);

        return  sqLiteDatabase.insert(tbl_name,null,cVal);
    }

    public Cursor login(String email, String password){
        SQLiteDatabase sqLiteDatabase=getWritableDatabase();
        String[] columns={col_name,col_email,col_phn,col_pswd,col_city,col_lat,col_lng};
        String selection=col_email+"=? and "+col_pswd+"=?";
        String[] selArgs={email,password};
        return sqLiteDatabase.query(tbl_name,columns,selection,selArgs,null,null,null);
    }


   public int update(String nm, String eml,String phn, String pswd, String city,Double lattitude,Double longitude){
        SQLiteDatabase sqLiteDatabase=getWritableDatabase();
        ContentValues cVal=new ContentValues();
        cVal.put(col_name,nm);
        cVal.put(col_phn,phn);
        cVal.put(col_pswd,pswd);
        cVal.put(col_city,city);
        cVal.put(col_lat,lattitude);
        cVal.put(col_lng,longitude);

        String sel=col_email+"=? ";
        String[] selArg={eml};
        return sqLiteDatabase.update(tbl_name,cVal,sel,selArg);
    }



    public Cursor duplicate_login(String email){
        SQLiteDatabase sqLiteDatabase=getWritableDatabase();
        String[] columns={col_name,col_email,col_phn,col_pswd,col_city,col_lat,col_lng};
        String selection=col_email+"=?";
        String[] selArgs={email};
        return sqLiteDatabase.query(tbl_name,columns,selection,selArgs,null,null,null);
    }
}

请帮我找出该做什么?

2 个答案:

答案 0 :(得分:1)

 Caused by: android.database.sqlite.SQLiteException: no such column: User_Latitude (code 1): , while compiling: SELECT Name, Email, Phone, Password, City, User_Latitude, User_Longitude FROM userTbl WHERE Email=? and Password=?

我认为您的代码是正确的,只需更新您的数据库

  

只需卸载该应用并再次运行即可解决您的问题

答案 1 :(得分:0)

列User.at中的User_Latitude列不可用,请查看我的SQLite示例。我希望这能帮到您。 https://github.com/sunilparmar04/SQLiteDemo