为什么当我按下按钮在表中插入值时应用程序崩溃



DataBaseHelper

    public class DataBaseHelper extends SQLiteOpenHelper {
    public static final String DATABASE_NAME ="Glucoplate.bd";
    public static final String TABLE_NAME ="User_table";
    public static final String COL_1 = "ID";
    public static final String COL_2 ="NAME";
    public static final String COL_3 = "SURNAME";
    public static final String COL_4 = "MARKS";

    public DataBaseHelper(Context context) {
        super(context, DATABASE_NAME, null, 1);
    }
    @Override
    public void onCreate(SQLiteDatabase db) {
    db.execSQL("CREATE TABLE" + TABLE_NAME + "(ID INTEGER PRIMARY KEY AUTOINCREMENT,NAME TEXT,SURNAME TEXT, MARKS INTEGER)");
    }
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP TABLE IF EXIST "+TABLE_NAME);
    }
    public boolean insertData(String name, String surname, String marks){
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put(COL_2,name);
        contentValues.put(COL_3,surname);
        contentValues.put(COL_4, marks);
        long result = db.insert(TABLE_NAME,null,contentValues);
        db.close();
        if (result == -1) {
            return false;
        }else{
         return true;
        }
    }
}

我遵循了 Android Academy 中的教程,但我不想工作,即使在构建和清理项目之后也是如此。

主活动

public class MainActivity extends AppCompatActivity {
    DataBaseHelper myDb;
    EditText txtName, txtSurname, txtMarks;
    Button btnClick;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    myDb= new DataBaseHelper(this);
        txtName = (EditText) findViewById(R.id.idName);
        txtSurname = (EditText) findViewById(R.id.idSurname);
        txtMarks =(EditText) findViewById(R.id.idMarks);
        btnClick = (Button) findViewById(R.id.idBtn);
        btnClick.setOnClickListener(new View.OnClickListener(){
            @Override
        public void onClick(View v){
            ClickMe();
        }
        });
    }
    private void ClickMe(){
        String name= txtName.getText().toString();
        String surname = txtSurname.getText().toString();
        String marks = txtMarks.getText().toString();
        Boolean result= myDb.insertData(name, surname, marks);
        if(result == true){
            Toast.makeText(this, "agragado", Toast.LENGTH_SHORT).show();
        }else{
            Toast.makeText(this,"Fallo",Toast.LENGTH_SHORT).show();
        }
    }
}

我正在使用安卓Nougat,我尝试了另外 4 种方法,但仍然不起作用;此外,该ID不会显示任何错误,警告或任何崩溃的内容。

根据您的代码和堆栈跟踪,您没有在CREATE TABLETABLE_NAME之间添加空格" "。在TABLE_NAME之后也添加一个" "

最新更新