android.database.sqlite.SQLiteException:表Registerd_用户没有名为userType的列
(编辑:在多次尝试使代码正常工作之后……什么都没有。在一些不起作用的建议之后,我仍然在寻找答案:) 但是在运行时,程序告诉我没有UserType这样的列。 下面是两个Java类文件的代码 DatabaseHandler.Javaandroid.database.sqlite.SQLiteException:表Registerd_用户没有名为userType的列,sqlite,android-studio,Sqlite,Android Studio,(编辑:在多次尝试使代码正常工作之后……什么都没有。在一些不起作用的建议之后,我仍然在寻找答案:) 但是在运行时,程序告诉我没有UserType这样的列。 下面是两个Java类文件的代码 DatabaseHandler.Java package com.set.ultimax.login; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; i
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 = "Users";
private static final String TABLE_USERS = "Registerd_Users";
// Account Table Columns names
private static final String KEY_ID = "id";
private static final String KEY_FNAME = "fullName";
private static final String KEY_EMAIL = "userEmail";
private static final String KEY_PASS = "passWord";
private static final String KEY_TYPE = "userType";
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_FNAME + " TEXT," + KEY_EMAIL + " TEXT,"
+ KEY_PASS + " TEXT " + KEY_TYPE + " 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_FNAME, users.getFname()); //full name
values.put(KEY_EMAIL, users.getEmail()); // Email
values.put(KEY_PASS, users.getPassword()); // Password
values.put(KEY_TYPE, users.getuserType()); //user Type
// 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 fullName, String userEmail, String password, String userType){
Cursor c = getReadableDatabase().rawQuery(
"SELECT * FROM " + TABLE_USERS + " WHERE "
+ KEY_FNAME + "='" + fullName + "'AND "
+ KEY_EMAIL + "='" + userEmail +"'AND "
+ KEY_PASS + "='" + password + "'AND "
+ KEY_TYPE + "='" + userType + "'" , null);
if (c.getCount() > 0) {
return true;
}
else{return false;}
}
public boolean sameUser(String userEmail){
Cursor c = getReadableDatabase().rawQuery(
"SELECT * FROM " + TABLE_USERS + " WHERE "
+ KEY_EMAIL + "='" + userEmail + "'" , null);
if (c.getCount() > 0) {
return true;
}
else{return false;}
}
}
package com.set.ultimax.login;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Paint;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class SignUp extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sign_up);
TextView goHome = (TextView) findViewById(R.id.home);
Button register = (Button) findViewById(R.id.reg);
goHome.setPaintFlags(goHome.getPaintFlags()| Paint.UNDERLINE_TEXT_FLAG);
goHome.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on click
Intent toMain = new Intent(SignUp.this, Main.class);
startActivity(toMain);
}
});
register.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on click
DatabaseHandler db = new DatabaseHandler(v.getContext());
Intent toMain = new Intent(SignUp.this, Main.class);
EditText fName = (EditText) findViewById(R.id.fName);
EditText email = (EditText) findViewById(R.id.Email);
EditText pass = (EditText) findViewById(R.id.password);
String fNameValue = fName.getText().toString();
String emailValue = email.getText().toString();
String passValue = pass.getText().toString();
int charemailLength = emailValue.length();
int charPassLength = passValue.length();
boolean emailMatch = db.sameUser(emailValue);
if (emailMatch) { //Checks to see if the UserName already exists
Toast.makeText(SignUp.this, "UserName Already Taken", Toast.LENGTH_LONG).show();
}
else if (emailValue.equals("") && passValue.equals("")) {
Toast.makeText(SignUp.this, "Fields Empty", Toast.LENGTH_SHORT).show();
}
else if (charemailLength <= 5 && charPassLength <= 5) {
Toast.makeText(SignUp.this, "Characters too short", Toast.LENGTH_SHORT).show();
}
else {
db.addUsers(new Users(fNameValue, emailValue, passValue,"Admin" ));
startActivity(toMain);
}
}
});
}
}
SignUp.Java
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 = "Users";
private static final String TABLE_USERS = "Registerd_Users";
// Account Table Columns names
private static final String KEY_ID = "id";
private static final String KEY_FNAME = "fullName";
private static final String KEY_EMAIL = "userEmail";
private static final String KEY_PASS = "passWord";
private static final String KEY_TYPE = "userType";
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_FNAME + " TEXT," + KEY_EMAIL + " TEXT,"
+ KEY_PASS + " TEXT " + KEY_TYPE + " 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_FNAME, users.getFname()); //full name
values.put(KEY_EMAIL, users.getEmail()); // Email
values.put(KEY_PASS, users.getPassword()); // Password
values.put(KEY_TYPE, users.getuserType()); //user Type
// 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 fullName, String userEmail, String password, String userType){
Cursor c = getReadableDatabase().rawQuery(
"SELECT * FROM " + TABLE_USERS + " WHERE "
+ KEY_FNAME + "='" + fullName + "'AND "
+ KEY_EMAIL + "='" + userEmail +"'AND "
+ KEY_PASS + "='" + password + "'AND "
+ KEY_TYPE + "='" + userType + "'" , null);
if (c.getCount() > 0) {
return true;
}
else{return false;}
}
public boolean sameUser(String userEmail){
Cursor c = getReadableDatabase().rawQuery(
"SELECT * FROM " + TABLE_USERS + " WHERE "
+ KEY_EMAIL + "='" + userEmail + "'" , null);
if (c.getCount() > 0) {
return true;
}
else{return false;}
}
}
package com.set.ultimax.login;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Paint;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class SignUp extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sign_up);
TextView goHome = (TextView) findViewById(R.id.home);
Button register = (Button) findViewById(R.id.reg);
goHome.setPaintFlags(goHome.getPaintFlags()| Paint.UNDERLINE_TEXT_FLAG);
goHome.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on click
Intent toMain = new Intent(SignUp.this, Main.class);
startActivity(toMain);
}
});
register.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on click
DatabaseHandler db = new DatabaseHandler(v.getContext());
Intent toMain = new Intent(SignUp.this, Main.class);
EditText fName = (EditText) findViewById(R.id.fName);
EditText email = (EditText) findViewById(R.id.Email);
EditText pass = (EditText) findViewById(R.id.password);
String fNameValue = fName.getText().toString();
String emailValue = email.getText().toString();
String passValue = pass.getText().toString();
int charemailLength = emailValue.length();
int charPassLength = passValue.length();
boolean emailMatch = db.sameUser(emailValue);
if (emailMatch) { //Checks to see if the UserName already exists
Toast.makeText(SignUp.this, "UserName Already Taken", Toast.LENGTH_LONG).show();
}
else if (emailValue.equals("") && passValue.equals("")) {
Toast.makeText(SignUp.this, "Fields Empty", Toast.LENGTH_SHORT).show();
}
else if (charemailLength <= 5 && charPassLength <= 5) {
Toast.makeText(SignUp.this, "Characters too short", Toast.LENGTH_SHORT).show();
}
else {
db.addUsers(new Users(fNameValue, emailValue, passValue,"Admin" ));
startActivity(toMain);
}
}
});
}
}
package com.set.ultimax.login;
导入android.app.Activity;
导入android.content.Intent;
导入android.graphics.Paint;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.Button;
导入android.widget.EditText;
导入android.widget.TextView;
导入android.widget.Toast;
公共类注册扩展了活动{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(右布局、注册);
TextView goHome=(TextView)findViewById(R.id.home);
按钮寄存器=(按钮)findViewById(R.id.reg);
goHome.setPaintFlags(goHome.getPaintFlags()| Paint.UNDERLINE_TEXT_FLAG);
goHome.setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图v){
//单击后执行操作
Intent-toMain=新的Intent(SignUp.this,Main.class);
星形触觉(toMain);
}
});
register.setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图v){
//单击后执行操作
DatabaseHandler db=新的DatabaseHandler(v.getContext());
Intent-toMain=新的Intent(SignUp.this,Main.class);
EditText fName=(EditText)findViewById(R.id.fName);
EditText电子邮件=(EditText)findViewById(R.id.email);
EditText pass=(EditText)findViewById(R.id.password);
字符串fNameValue=fName.getText().toString();
字符串emailValue=email.getText().toString();
字符串passValue=pass.getText().toString();
int charemailLength=emailValue.length();
int charPassLength=passValue.length();
布尔emailMatch=db.sameUser(emailValue);
if(emailMatch){//检查用户名是否已存在
Toast.makeText(SignUp.this,“用户名已被使用”,Toast.LENGTH_LONG.show();
}
else if(emailValue.equals(“”)和passValue.equals(“”){
Toast.makeText(SignUp.this,“Fields Empty”,Toast.LENGTH_SHORT.show();
}
else if(字符长度)
缺少逗号。请尝试卸载你的应用程序,然后重新安装。因为我看不到任何错误。我这么做了,它不起作用,谢谢你的回复。你是怎么看的?我会重试,然后告诉你我是怎么做的。顺便说一下,非常感谢你!