通过sqlite登录给出错误

问题描述 投票:2回答:2

我试图在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);
    }
}

请帮我看看该怎么办?

android sqlite android-sqlite
2个回答
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=?

我认为你的代码是正确的只是更新你的数据库

只需卸载应用程序并再次运行它将解决您的问题


0
投票

在Table.just中没有列User_Latitude可以通过我的SQLite示例。我希望这能帮到您。 https://github.com/sunilparmar04/SQLiteDemo

© www.soinside.com 2019 - 2024. All rights reserved.