Java 我的数据库不是';t接收我输入到Android Studio的数据
我刚刚在一个教程之后创建了一些代码,我的程序创建了一个数据库,这一切都很好,但是当我单击我指定的按钮将数据输入到我的数据库时,它没有这样做。这是代码Java 我的数据库不是';t接收我输入到Android Studio的数据,java,android,android-studio,Java,Android,Android Studio,我刚刚在一个教程之后创建了一些代码,我的程序创建了一个数据库,这一切都很好,但是当我单击我指定的按钮将数据输入到我的数据库时,它没有这样做。这是代码 public class MainActivity extends AppCompatActivity { Button homeToRegister; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreat
public class MainActivity extends AppCompatActivity {
Button homeToRegister;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SQLclass con = new SQLclass(this);
homeToRegister = findViewById(R.id.home_register);
homeToRegister.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this, register.class));
}
});
}
}
这是主要的活动
public class SQLclass extends SQLiteOpenHelper {
private static final String DB_NAME = "uni_db";
private static int VERSION = 1;
SQLiteDatabase database;
public SQLclass(Context context) {
super(context, DB_NAME, null, VERSION);
database = getWritableDatabase();
}
@Override
public void onCreate(SQLiteDatabase database) {
final String CREATETABLEUSER = "CREATE TABLE IF NOT EXISTS "+
UniqueContract.User.TABLE_NAME+"("+
UniqueContract.User.SID+" INTEGER PRIMARY KEY autoincrement, "+
UniqueContract.User.FN+" varchar(45), "+
UniqueContract.User.SN+" varchar(45), "+
UniqueContract.User.EM+" varchar(45), "+
UniqueContract.User.GROUP+" varchar(45), "+
UniqueContract.User.Password+" varchar(45),"+
"FOREIGN KEY (" +UniqueContract.User.GROUP+ " )REFERENCES _group (_group));";
database.execSQL(CREATETABLEUSER);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
public void register(String fn, String sn, String pw, String group, String em){
ContentValues cv = new ContentValues();
cv.put(UniqueContract.User.FN, fn);
cv.put(UniqueContract.User.SN, sn);
cv.put(UniqueContract.User.EM, em);
cv.put(UniqueContract.User.GROUP, group);
cv.put(UniqueContract.User.Password, pw);
SQLiteDatabase db = getWritableDatabase();
db.close();
}
}
这是我创建数据库并将数据放入数据库的类
public class register extends AppCompatActivity {
EditText fn, sn, em, group, pw;
Button register;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
fn = findViewById(R.id.et_reg_fn);
sn = findViewById(R.id.et_reg_sn);
em = findViewById(R.id.et_reg_em);
pw = findViewById(R.id.et_reg_pw);
group = findViewById(R.id.et_reg_group);
register = findViewById(R.id.btn_reg_register);
register.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SQLclass con = new SQLclass(register.this);
con.register(fn.getText().toString(), sn.getText().toString(), pw.getText().toString(), em.getText().toString(), group.getText().toString());
}
});
}
}
这是register类执行其函数的地方。因此,点击它应该存储输入的数据
public final class UniqueContract {
private UniqueContract(){}
public static class User{
public static final String TABLE_NAME = "User";
public static final String FN = "fn";
public static final String SN = "sn";
public static final String EM = "em";
public static final String GROUP = "_group";
public static final String Password = "pw";
public static final String SID = "sid";
}
}
在SQLclass
类的register()
方法中,在此行之后:
SQLiteDatabase db = getWritableDatabase();
您忘记插入值:
db.insert(UniqueContract.User.TABLE_NAME, null, cv);