Android SQLite插入到表中不会像日志显示的那样工作;(1) 无栏:“无”;错误
尝试做一个简单的登录应用程序,被困在这里一段时间可能需要一些帮助,我有一个单独的helper类来覆盖超类中的方法并提供上下文,open方法是获取可写对象并打开db,而close是关闭db。Insert就是插入到表中,getUserId和getPassword非常简单 以下代码是我的数据库代码: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
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);
同样,对于另一个查询。在摘要中发布您的日志,请同时附上您的日志。谢谢