作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
private static final String TABLE_USERS = "Registerd_Accounts";
当我把它改成这个时私有(private)静态最终字符串TABLE_USERS =“Registered_Accounts”;
当我按下按钮或任何使用数据库的东西时,它崩溃了。当我将其改回拼写错误时,它就可以工作。但是“Registerd_Accounts”仅在处理程序中使用,所以怎么了?在此输入代码。
package com.set.ultimax.login;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DatabaseHandler extends SQLiteOpenHelper {
// All Static variables
// Database Version
private static final int DATABASE_VERSION = 1;
// Database Name
private static final String DATABASE_NAME = "All_Accounts";
private static final String TABLE_USERS = "Registered_Accounts";
// Contacts Table Columns names
private static final String KEY_ID = "id";
private static final String KEY_USERS = "userName";
private static final String KEY_PASS = "passWord";
public DatabaseHandler(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
// Creating Tables
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_ACCOUNT_TABLE = "CREATE TABLE " + TABLE_USERS + "("
+ KEY_ID + " INTEGER PRIMARY KEY," + KEY_USERS + " TEXT,"
+ KEY_PASS + " TEXT" + ")";
db.execSQL(CREATE_ACCOUNT_TABLE);
}
// Upgrading database
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// Drop older table if existed
db.execSQL("DROP TABLE IF EXISTS " + TABLE_USERS);
onCreate(db);// Create tables again
}
// Adding new User
void addUsers(Users users) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_USERS, users.getUser()); // User Name
values.put(KEY_PASS, users.getPassword()); // Password
// Inserting Row
db.insert(TABLE_USERS, null, values);
db.close(); // Closing database connection
}
public void deleteAll() //Deletes all data in the database
{
SQLiteDatabase db = this.getWritableDatabase();
db.delete(TABLE_USERS,null,null);
}
public boolean validateUser(String username, String password){
Cursor c = getReadableDatabase().rawQuery(
"SELECT * FROM " + TABLE_USERS + " WHERE "
+ KEY_USERS + "='" + username +"'AND "+KEY_PASS+"='"+password+"'" , null);
if (c.getCount() > 0) {
return true;
}
else{return false;}
}
public boolean sameUser(String username){
Cursor c = getReadableDatabase().rawQuery(
"SELECT * FROM " + TABLE_USERS + " WHERE "
+ KEY_USERS + "='" + username + "'" , null);
if (c.getCount() > 0) {
return true;
}
else{return false;}
}
}
这是我的访问器方法
package com.set.ultimax.login;
public class Users {
//private variables
int _id; // Just to have it.
String _userName;
String _passWord;
// Empty constructor
public Users(){
}
// constructor
public Users(String userName, String _passWord){
this._userName = userName;
this._passWord = _passWord;
}
// getting User
public String getUser(){
return this._userName;
}
// getting Password
public String getPassword(){
return this._passWord;
}
}
最佳答案
您应该从设备中卸载该应用程序,然后再次安装并检查它。这可能对您有帮助,因为当我们安装应用程序时,我们的应用程序也会创建本地数据库和数据库表。因此,当您安装时,您的本地数据库已使用拼写错误的表名创建,并且您的应用程序尝试找到正确的拼写表。
关于android - 当我更正 SQL 表名称中的拼写错误时,为什么我的应用程序会崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39928854/
我是一名优秀的程序员,十分优秀!