我正在尝试在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);
}
}
请帮我找出该做什么?
答案 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