我正在努力解决这个问题。任何人都可以帮我解决这个问题吗?请让我知道查询语句中的 where 子句哪里出了问题。我想从所有列中读取值,然后将其显示出来。
这是我的查询代码:
public class MainActivity extends AppCompatActivity {
SQLiteDatabase db;
SQLiteOpenHelper openHelper;
Button btnlogin, btnsigup;
EditText loguname, logpass;
Cursor cursor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnlogin = (Button) findViewById(R.id.btnlogin);
btnsigup = (Button) findViewById(R.id.btnpass);
loguname = (EditText) findViewById(R.id.loguname);
logpass = (EditText) findViewById(R.id.logpass);
openHelper = new DatabaseHelper(this);
db = openHelper.getReadableDatabase();
btnlogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String username =loguname.getText().toString();
String pass =logpass.getText().toString();
cursor = db.rawQuery("SELECT *FROM " + DatabaseHelper.TABLE_NAME + " WHERE " + DatabaseHelper.COL_2 + "='?' AND " + DatabaseHelper.COL_4 + "='?' ", new String[]{username, pass});
if (cursor != null) {
if (cursor.getCount() > 0) {
Intent intent = new Intent(MainActivity.this, MapsActivity.class);
startActivity(intent);
} else {
Toast.makeText(MainActivity.this, "Login Failed", Toast.LENGTH_SHORT).show();
}
}
}
});
btnsigup.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent1 = new Intent(MainActivity.this, SignUp.class);
startActivity(intent1);
}
});
}
}
你忘记在中间留出空格SELECT * FROM
正如所提到的噢上帝蜘蛛 https://stackoverflow.com/users/6073886/oh-god-spiders删除问号周围的单引号:=?
代替='?'
试试这个代码
String query = "SELECT * FROM " + DatabaseHelper.TABLE_NAME + " WHERE " + DatabaseHelper.COL_2 + "=? AND " + DatabaseHelper.COL_4 + "=? ";
cursor = db.rawQuery(query, new String[]{username, pass});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)