Java 有没有关于如何停止添加多条目的想法';身份证号码';使用此代码将数据导入数据库?

Java 有没有关于如何停止添加多条目的想法';身份证号码';使用此代码将数据导入数据库?,java,android,sqlite,Java,Android,Sqlite,我正在试图找到一种方法,允许用户不能两次添加相同的ID,就好像我想删除其中一个用户,而他与另一个用户共享了该ID,这将同时删除这两个用户一样 到目前为止,我找不到任何帮助。有人知道吗 公共类MainActivity扩展了AppCompatActivity{ private Button button; private EditText IdText; private EditText NameText; private EditText AgeText; private EditText Wei

我正在试图找到一种方法,允许用户不能两次添加相同的ID,就好像我想删除其中一个用户,而他与另一个用户共享了该ID,这将同时删除这两个用户一样

到目前为止,我找不到任何帮助。有人知道吗

公共类MainActivity扩展了AppCompatActivity{

private Button button;
private EditText IdText;
private EditText NameText;
private EditText AgeText;
private EditText WeightText;
private EditText HeightText;
private EditText ReachText;
MyDBHandler dbHandler;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    IdText = (EditText) findViewById(R.id.IdText);
    NameText = (EditText) findViewById(R.id.NameText);
    HeightText = (EditText) findViewById(R.id.HeightText);
    AgeText = (EditText) findViewById(R.id.AgeText);
    WeightText = (EditText) findViewById(R.id.WeightText);
    ReachText = (EditText) findViewById(R.id.ReachText);
    button = (Button) findViewById(R.id.button);
    dbHandler = new MyDBHandler(this);
    AddData();


}

public void AddData() {

    button.setOnClickListener(
            new View.OnClickListener() {
                @Override
                public void onClick(View v) {

                    if ((IdText.getText().toString()).isEmpty()) {
                        IdText.setError("Please fill out your name");
                        return;

                    } else if ((NameText.getText().toString()).isEmpty()) {
                        NameText.setError("Please fill out your ID");
                        return;

                    } else if ((AgeText.getText().toString()).isEmpty()) {
                        AgeText.setError("Please fill out your Age");
                        return;

                    } else if ((HeightText.getText().toString()).isEmpty()) {
                        HeightText.setError("Please fill out your Height in centimeters");
                        return;

                    } else if ((WeightText.getText().toString()).isEmpty()) {
                        WeightText.setError("Please fill out your weight in kilos");
                        return;

                    } else if ((ReachText.getText().toString()).isEmpty()) {
                        ReachText.setError("Please fill out your reach in inches");
                        return;

                    } else {
                        boolean isInserted = dbHandler.insertData(IdText.getText().toString(),

                                NameText.getText().toString(),
                                AgeText.getText().toString(),
                                HeightText.getText().toString(),
                                WeightText.getText().toString(),
                                ReachText.getText().toString());
                        if (isInserted == true)
                            Toast.makeText(MainActivity.this, "Fighter added", Toast.LENGTH_LONG).show();
                        else
                            Toast.makeText(MainActivity.this, "Data not inserted", Toast.LENGTH_LONG).show();


                    }
                }
            }
    );
}
公共类MyDBHandler扩展了SQLiteOpenHelper{

private static final int DATABASE_VERSION = 1;
private static final String DATABASE_NAME = "Fighters.db";
public static final String TABLE_PRODUCTS = "Fighter";
public static final String COLUMN_ID = "ID1";
public static final String COLUMN_NAME = "Name";
public static final String COLUMN_AGE = "Age";
public static final String COLUMN_WEIGHT = "Weight";
public static final String COLUMN_HEIGHT = "Height";
public static final String COLUMN_REACH = "Reach";


SQLiteDatabase db;



public MyDBHandler(Context context) {
    super(context, DATABASE_NAME, null, 1);
    SQLiteDatabase db = this.getWritableDatabase();
}

@Override
public void onCreate(SQLiteDatabase db) {
    db.execSQL("CREATE TABLE " + TABLE_PRODUCTS + " (ID INTEGER PRIMARY KEY AUTOINCREMENT,ID1 TEXT,Name TEXT,Age INTEGER,Weight INTEGER,Height TEXT,Reach TEXT)");


}

@Override
public void onUpgrade(SQLiteDatabase db, int i, int i1) {
    db.execSQL("DROP TABLE IF EXISTS" + TABLE_PRODUCTS);
    this.onCreate(db);
}



//Add new row to the database
public boolean insertData(String id1, String name, String age, String weight, String height, String reach) {
    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues contentValues = new ContentValues();
    contentValues.put(COLUMN_ID, id1);
    contentValues.put(COLUMN_NAME, name);
    contentValues.put(COLUMN_AGE, age);
    contentValues.put(COLUMN_WEIGHT, weight);
    contentValues.put(COLUMN_HEIGHT, height);
    contentValues.put(COLUMN_REACH, reach);
    long result = db.insert(TABLE_PRODUCTS, null, contentValues);
    if (result == -1)
        return false;
    else
        return true;
}

public Cursor getAllData() {
    SQLiteDatabase db = this.getWritableDatabase();
    Cursor res = db.rawQuery("select * from " + TABLE_PRODUCTS, null);
    return res;
}

public boolean updateData(String id1,String name, String age, String weight, String height, String reach) {
    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues contentValues = new ContentValues();
    contentValues.put(COLUMN_ID, id1);
    contentValues.put(COLUMN_NAME, name);
    contentValues.put(COLUMN_AGE, age);
    contentValues.put(COLUMN_WEIGHT, weight);
    contentValues.put(COLUMN_HEIGHT, height);
    contentValues.put(COLUMN_REACH, reach);
    db.update(TABLE_PRODUCTS, contentValues, "ID1 = ?", new String[] {id1 });
    return true;
}

public Integer deleteData (String id) {

    SQLiteDatabase db = this.getWritableDatabase();
   return db.delete(TABLE_PRODUCTS, "ID1 = ?", new String[] {id});
}

如果您使用的是数据库,请使用SQL检查您从用户处获得的ID是否存在。如果存在,请警告您的用户。您的代码根本没有帮助。您的数据库在哪里?有我的数据库,很抱歉,我教过您在另一个类中检查,这是我的错。将ID1 TEXT更改为ID1 TEXT not NULL unique刚刚尝试过,似乎有问题仍然允许双条目..还有其他想法吗?只更改CREATETABLE语句本身。