0

我有 2 个 java 类,DatabaseAdapter.java 和 DBHelper.java。为用户登录编写的代码不正确,我不知道错误在哪里以及如何编写代码。有人可以帮忙吗。'new DBHelper(this)' 在程序中带有下划线。

public class DatabaseAdapter {


// Table attributes
public static final String TABLE_USER = "user_table";

//User Table
public static final String USER_ID = "_id";
public static final String UNAME = "name";
public static final String USURNAME = "surname";
public static final String USERNAME = "username";
public static final String UPASSWORD = "password";
public static final String UEMAILADDRESS = "emailadd";


     public boolean Login(String username, String password) throws SQLException  
        { 

        DBHelper dbhelper = new DBHelper(this); 
        SQLiteDatabase db = dbhelper.getReadableDatabase();
            Cursor mCursor = db.rawQuery("SELECT * FROM " + TABLE_USER + " WHERE username=? AND password=?", new String[]{username,password});  
            if (mCursor != null) {  
                if(mCursor.getCount() > 0)  
                {  
                    return true;  
                }  
            } 

            mCursor.close();
            db.close();
         return false;  
        }  

在创建表的 DBHelper 中。

         public class DBHelper extends SQLiteOpenHelper {
     public static final int DB_VERSION = 1;
      public static final String DB_NAME = "moneym.db";

public DBHelper(Context ctx) {
    super(ctx, DB_NAME, null, DB_VERSION);
}


@Override
public void onCreate(SQLiteDatabase db) {
      createTables(db);
}

@Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {

}

public void createTables(SQLiteDatabase database) {
     String UserTable = "create table if not exists " + DatabaseAdapter.TABLE_USER + " ( " +
            DatabaseAdapter.USER_ID + " integer primary key autoincrement, " 
            + DatabaseAdapter.UNAME + " text, "
            + DatabaseAdapter.USURNAME + " text, "
            + DatabaseAdapter.USERNAME + " text, "
            + DatabaseAdapter.UPASSWORD + " text, "
            + DatabaseAdapter.UEMAILADDRESS + " text);";
     try {
       database.execSQL(UserTable);

       Log.d("Users","Tables created!");

    }
    catch(Exception ex) {
        Log.d("Users", "Error in DBHelper.onCreate() : " + ex.getMessage());
    }
}
4

1 回答 1

4

您的 DbHelper 构造函数需要一个 Context 作为参数,但您正在给它一个 DatabaseAdapter 的实例。您应该阅读一些基本的 Java 和 Android 教程和文档。

于 2012-11-13T07:08:07.417 回答