Java SQLite日志没有这样的表
我已经为用户名和密码创建了一个数据库,当我在我的另一台计算机上时,它工作正常。现在在这台计算机上,我得到一个错误,表不存在,我不明白为什么它不创建一个新的数据库Java SQLite日志没有这样的表,java,android,sqlite,Java,Android,Sqlite,我已经为用户名和密码创建了一个数据库,当我在我的另一台计算机上时,它工作正常。现在在这台计算机上,我得到一个错误,表不存在,我不明白为什么它不创建一个新的数据库 public class usrPwdDB { public static final String USER = "userName"; public static final String PWD = "password"; public static final String TABLE_NAME = "
public class usrPwdDB {
public static final String USER = "userName";
public static final String PWD = "password";
public static final String TABLE_NAME = "userTable";
public static final String DATA_BASE_NAME = "userdatabase";
public static final String KEY_ROWID = "_id";
public static final int DB_VERSION = 5;
private static final String DATABASE_CREATE = "create table userTable" + DATA_BASE_NAME + " ("
+ USER + " text not null, " + PWD + " text not null, );";
DBHelper WDBHelper;
Context mContext;
SQLiteDatabase db;
public usrPwdDB(Context mContext) {
this.mContext = mContext;
WDBHelper = new DBHelper(mContext);
}
private static class DBHelper extends SQLiteOpenHelper {
public DBHelper(Context context) {
super(context,DATA_BASE_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
try{
db.execSQL(DATABASE_CREATE);
} catch(SQLException e) {
e.printStackTrace();
}
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS userTable");
onCreate(db);
}
}
public usrPwdDB open() {
db = WDBHelper.getWritableDatabase();
return this;
}
public void close(){
WDBHelper.close();
}
public long insertInfo(String userName, String password){
ContentValues content = new ContentValues();
content.put(USER, userName);
content.put(PWD, password);
return db.insertOrThrow(TABLE_NAME, null, content);
}
public boolean getUserNameAndPassword(String userName, String Password) throws SQLException {
Cursor mCursor = db.query(true, TABLE_NAME, new String[] {USER, PWD}, USER+"='"+userName+
"' AND password='"+Password+"'", null, null, null, null, null);
if (mCursor.getCount() > 0) {
return true;
}
return false;
}
public Cursor returnData(){
return db.query(TABLE_NAME, new String[] {USER, PWD}, null, null, null, null, null);
}
}
在执行create语句之前记录它,这可能会有所帮助 一个简单的猜测是
"create table userTable" + DATA_BASE_NAME
最终成为
"create table userTableuserdatabase"
因此,您实际上是在创建表
userTableuserdatabase
,而不是userTable
您的数据库\u CREATE字符串有问题,因为您是使用userTableuserdatabase名称创建表,然后尝试使用其他名称访问它。您好,感谢您的建议,很遗憾,这不起作用,仍然会出现错误,01-31 14:16:08.976:E/AndroidRuntime(3345):android.database.sqlite.SQLiteException:没有这样的表:userTable(代码1):,编译时:选择不同的用户名,userTable中的密码,其中userName=''和password=''您应该通过勾选答案旁边的勾号来接受此答案。只需确保您的create语句正确并得到执行。如果有帮助,您可以输出所有现有表以查看所创建的内容。看看这里是怎么回事