Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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
android.database.sqlite.SQLiteException:表Registerd_用户没有名为userType的列_Sqlite_Android Studio - Fatal编程技术网

android.database.sqlite.SQLiteException:表Registerd_用户没有名为userType的列

android.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

(编辑:在多次尝试使代码正常工作之后……什么都没有。在一些不起作用的建议之后,我仍然在寻找答案:)

但是在运行时,程序告诉我没有UserType这样的列。 下面是两个Java类文件的代码

DatabaseHandler.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);
            }

        }

    });

}
}
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(字符长度)

缺少逗号。

请尝试卸载你的应用程序,然后重新安装。因为我看不到任何错误。我这么做了,它不起作用,谢谢你的回复。你是怎么看的?我会重试,然后告诉你我是怎么做的。顺便说一下,非常感谢你!