Android SQLite插入到表中不会像日志显示的那样工作;(1) 无栏:“无”;错误

Android SQLite插入到表中不会像日志显示的那样工作;(1) 无栏:“无”;错误,android,sqlite,android-sqlite,Android,Sqlite,Android Sqlite,尝试做一个简单的登录应用程序,被困在这里一段时间可能需要一些帮助,我有一个单独的helper类来覆盖超类中的方法并提供上下文,open方法是获取可写对象并打开db,而close是关闭db。Insert就是插入到表中,getUserId和getPassword非常简单 以下代码是我的数据库代码: public class MySQLiteHelper{ private static final String LOGCAT = null; private static final int

尝试做一个简单的登录应用程序,被困在这里一段时间可能需要一些帮助,我有一个单独的helper类来覆盖超类中的方法并提供上下文,open方法是获取可写对象并打开db,而close是关闭db。Insert就是插入到表中,getUserId和getPassword非常简单

以下代码是我的数据库代码:

public class MySQLiteHelper{   
private static final String LOGCAT = null;   
private static final int DATABASE_VERSION = 1;  
private static final String DATABASE_NAME = "User.db";//db  
private static final String DATABASE_USERS = "Users";//table  
private static final String KEY_USERID = "userid";  
private static final String KEY_PASSWORD = "password";  
private static final String[] COLUMNS = {KEY_USERID,KEY_PASSWORD};  
private static final String TABLE_USERS = "create table "+DATABASE_USERS+" ( userid TEXT, password TEXT)";  
private SQLiteDatabase SQLdb;  
private HelperClass helper;  
private final Context mContext;  



public MySQLiteHelper(Context context){
    this.mContext=context;
    helper = new HelperClass(mContext);
}

public class HelperClass extends SQLiteOpenHelper{
    public HelperClass(Context context){
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase SQLdb){
        try{
            SQLdb.execSQL(TABLE_USERS);
            Log.d(LOGCAT, "Table Created");
        }
        catch(SQLException e){
            Log.d(LOGCAT, "Exception arrised");
        }
    }

    @Override
    public void onUpgrade(SQLiteDatabase SQLdb, int oldVersion, int newVersion){
        SQLdb.execSQL("DROP TABLE IF EXISTS Users");
        Log.d(LOGCAT,"Table being recreated");
        onCreate(SQLdb);
    }
}

public MySQLiteHelper open(){
    SQLdb = helper.getWritableDatabase();
    Log.d(LOGCAT, "DB Opened");
    return this;
}

public void close(){
    helper.close();
    Log.d(LOGCAT, "DB Closed");
}

public long insertUser(String Userid,String Password){
    ContentValues values = new ContentValues();
    values.put(KEY_USERID,Userid);
    values.put(KEY_PASSWORD, Password);
    open();
    Log.d(LOGCAT, "calling insert");
    long l = SQLdb.insert(DATABASE_USERS,null,values);
    Log.d(LOGCAT, "Inserted User profile at column:"+l);
    close();
    return l;
}

public Cursor getUserId(String userid)throws SQLException{
    open();
    Cursor cursor = SQLdb.query(DATABASE_USERS,COLUMNS,KEY_USERID+"="+userid,null,null,null,null);
    close();
    return cursor;
}

public Cursor getPassword(String password)throws SQLException{
    open();
    Cursor cursor = SQLdb.query(DATABASE_USERS,COLUMNS,KEY_PASSWORD+"="+password,null,null,null,null);
    close();
    return cursor;
}
}

提前感谢:)

您需要使字符串文字实际上是文字,而不是列名。改变

SQLdb.query(DATABASE_USERS,COLUMNS,KEY_USERID+"="+userid,null,null,null,null);
差不多

SQLdb.query(DATABASE_USERS,COLUMNS,KEY_USERID+"=?",new String[]{ userid },null,null,null);

同样,对于另一个查询。

在摘要中发布您的日志,请同时附上您的日志。谢谢