仅允许在“创建table operation_table”中的整数主键上进行自动启动

发布于 2025-02-11 04:16:49 字数 2364 浏览 0 评论 0原文

我在数据库中添加数据时有问题 当我按添加应用程序进行tosecond Active以及我再次尝试应用程序crush时,我从第二个活动中插入数据的编辑文本是在第二个活动中。

请帮助!!!

在SQL Data Healper类上


public void onCreate(SQLiteDatabase db) {
        String createTableStatement = "CREATE TABLE " + OPERATION_TABLE + " ("+" ID INTGER PRIMARY KEY AUTOINCREMENT, " + COLUMN_OPERATION_NAME + " TEXT, " + COLUMN_OPERATION_AMOUNT + " TEXT, " + COLUMN_OPERATION_DESCRIPTION + " TEXT, " + COLUMN_OPERATION_IS_INCOME + " BOOL, " + COLUMN_DATE + "  TEXT )";

        db.execSQL(createTableStatement);
    }

addButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Operation operation;
                try {
                    operation = new Operation(-1, nameOfOperation.getText().toString(), amount.getText().toString(), description.getText().toString(), income.isChecked(), dateOfOperation.getText().toString());
                    editTextClean();
                    Toast.makeText(InsertActivity.this, "the operation is saved " + operation.toString(), Toast.LENGTH_SHORT).show();
                }catch (Exception e){
                    Toast.makeText(InsertActivity.this, "Error creating customer" , Toast.LENGTH_SHORT).show();
                    operation = new Operation(-1,"error", "error", "eror", true, "date error");


                }



                DataBaseHelper dataBaseHelper = new DataBaseHelper(InsertActivity.this);
                boolean success =dataBaseHelper.addOne(operation);
                Toast.makeText(InsertActivity.this, "Success= "+success, Toast.LENGTH_LONG).show();
            }
        });

public boolean addOne(Operation operation){
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues cv =new ContentValues();

        cv.put(COLUMN_OPERATION_NAME,operation.getName());
        cv.put(COLUMN_DATE,operation.getDate());
        cv.put(COLUMN_OPERATION_AMOUNT,operation.getAmount());
        cv.put(COLUMN_OPERATION_DESCRIPTION,operation.getDescription());
        cv.put(COLUMN_OPERATION_IS_INCOME,operation.isIncome());

        long insert = db.insert(OPERATION_TABLE, null, cv);

        if(insert ==-1){
            return false;
        }else {
            return true;
        }
    }

I'm have problem with adding a data to data base
the edit text that I insert the data from is in second activity when I press add the app goes tosecond activity and when i try again the app crush.

HELP PLEASE!!!

this on sql data Healper class


public void onCreate(SQLiteDatabase db) {
        String createTableStatement = "CREATE TABLE " + OPERATION_TABLE + " ("+" ID INTGER PRIMARY KEY AUTOINCREMENT, " + COLUMN_OPERATION_NAME + " TEXT, " + COLUMN_OPERATION_AMOUNT + " TEXT, " + COLUMN_OPERATION_DESCRIPTION + " TEXT, " + COLUMN_OPERATION_IS_INCOME + " BOOL, " + COLUMN_DATE + "  TEXT )";

        db.execSQL(createTableStatement);
    }

this a click listener in the activate:

addButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Operation operation;
                try {
                    operation = new Operation(-1, nameOfOperation.getText().toString(), amount.getText().toString(), description.getText().toString(), income.isChecked(), dateOfOperation.getText().toString());
                    editTextClean();
                    Toast.makeText(InsertActivity.this, "the operation is saved " + operation.toString(), Toast.LENGTH_SHORT).show();
                }catch (Exception e){
                    Toast.makeText(InsertActivity.this, "Error creating customer" , Toast.LENGTH_SHORT).show();
                    operation = new Operation(-1,"error", "error", "eror", true, "date error");


                }



                DataBaseHelper dataBaseHelper = new DataBaseHelper(InsertActivity.this);
                boolean success =dataBaseHelper.addOne(operation);
                Toast.makeText(InsertActivity.this, "Success= "+success, Toast.LENGTH_LONG).show();
            }
        });

and this the add method

public boolean addOne(Operation operation){
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues cv =new ContentValues();

        cv.put(COLUMN_OPERATION_NAME,operation.getName());
        cv.put(COLUMN_DATE,operation.getDate());
        cv.put(COLUMN_OPERATION_AMOUNT,operation.getAmount());
        cv.put(COLUMN_OPERATION_DESCRIPTION,operation.getDescription());
        cv.put(COLUMN_OPERATION_IS_INCOME,operation.isIncome());

        long insert = db.insert(OPERATION_TABLE, null, cv);

        if(insert ==-1){
            return false;
        }else {
            return true;
        }
    }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文