Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java “中的语法错误”;从registeruser中选择ID,其中用户名=?和密码=?”;_Java_Android_Sql_Sqlite - Fatal编程技术网

Java “中的语法错误”;从registeruser中选择ID,其中用户名=?和密码=?”;

Java “中的语法错误”;从registeruser中选择ID,其中用户名=?和密码=?”;,java,android,sql,sqlite,Java,Android,Sql,Sqlite,登录我的系统时出现此代码问题。 语法错误,但我似乎无法找到它,希望有人可以帮助! 我刚刚创建了第二个表来存储用户登录信息,请遵循youtube上的教程 错误: E/SQLiteLog: (1) near "andpassword": syntax error in "SELECT ID FROM registeruser WHERE username=? andpassword=?" D/AndroidRuntime: Shutting down VM

登录我的系统时出现此代码问题。 语法错误,但我似乎无法找到它,希望有人可以帮助! 我刚刚创建了第二个表来存储用户登录信息,请遵循youtube上的教程

错误:

E/SQLiteLog: (1) near "andpassword": syntax error in "SELECT ID FROM registeruser WHERE username=? 
andpassword=?"
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.locationadmin, PID: 10953
android.database.sqlite.SQLiteException: near "andpassword": syntax error (code 1 SQLITE_ERROR): , while compiling: SELECT ID FROM registeruser WHERE username=?andpassword=?
    at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
以下是onclicklistener的代码

    mButtonLogin.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String user = mTextUsername.getText().toString().trim();
            String pwd = mTextPassword.getText().toString().trim();
            Boolean res = myDB.checkUser(user, pwd);
            if (res == true)
            {
               Intent UserLoggedIn = new Intent(ActivityLogin.this, com.example.locationadmin.Activities.UserActivity.class);
                startActivity(UserLoggedIn);

            }
            else{
                Toast.makeText(ActivityLogin.this, "Login error", Toast.LENGTH_SHORT).show();

            }
        }
    });
下面是myDatabaseHelper.java中的代码

 @Override
public void onCreate(SQLiteDatabase db) {
    String query = "CREATE TABLE " + TABLE_NAME +
            " (" + COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
            COLUMN_LOCATION + " TEXT, " +
            COLUMN_COUNTY + " TEXT, " +
            COLUMN_DESCRIPTION + " TEXT, " +
            COLUMN_INROUTE + " TEXT, " +
            COLUMN_LAT + " TEXT, " +
            COLUMN_LONG + " TEXT, " +
            COLUMN_POSITION + " TEXT, " +
            COLUMN_IMG_URL + " TEXT, " +
            COLUMN_IMG_URL2 + " TEXT, " +
            COLUMN_IMG_URL3 + " TEXT );";

    db.execSQL(query);

    String query1 = "CREATE TABLE " + TABLE_REG +
            " (ID INTEGER PRIMARY KEY AUTOINCREMENT, " +
            COL_1 + " TEXT, " +
            COL_2 + " TEXT, " +
            COL_3 + " TEXT );";

    db.execSQL(query1);

}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_REG);
    onCreate(db);


}


public long addUser(String user, String password) {
    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues contentValues = new ContentValues();
    contentValues.put("username", user);
    contentValues.put("password", password);
    long res = db.insert("registeruser", null, contentValues);
    db.close();
    return res;

}

public boolean checkUser(String username, String password) {
    String[] columns = {COL_1};
    SQLiteDatabase db = getReadableDatabase();
    String selection = COL_2 + "=?" + "and" + COL_3 + "=?";
    String[] selectionArgs = {username, password};
    Cursor cursor = db.query(TABLE_REG, columns, selection, selectionArgs, null, null, null);
    int count = cursor.getCount();
    cursor.close();
    db.close();

    if (count > 0)
        return true;
    else
        return false;

}

您只需要在“and”中的
前后和
之间留出一个空格

试一试


在助手中的
checkUser
方法中:
String selection=COL_2+“=?”+”和“+COL_3+”=?”
您可能需要在需要的地方添加一些空格。也可以在`和`之后添加空格。但这不应该属于“由打字错误引起的”非主题问题类别吗?两者都是如此。无论如何,对于低级用户来说,清晰的代码示例更好。。答案更清楚。。(评论界面太差)
 String selection = COL_2 + "=?" + " and " + COL_3 + "=?";