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语句正确并得到执行。如果有帮助,您可以输出所有现有表以查看所创建的内容。看看这里是怎么回事