如何通过用户输入将数据插入sqlite?

时间:2019-04-06 14:54:11

标签: java android sqlite

我是移动应用程序构建的初学者。我试图将插入数据功能放在我的android studio中,但似乎这些插入功能不起作用,并且无法插入输入数据。请帮忙。

我在MainActivity.java和DatabaseHelper.java中放入了一些代码。它没有任何错误报告,但是当我尝试运行模拟器并输入数据时,我的输入可以插入到sqlite数据库中。

// oncreateMainActivity

super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        myDb = new DatabaseHelper(this);

        name2 = findViewById(R.id.name2);
        birthdate2 = findViewById(R.id.birthdate2);
        area2 = findViewById(R.id.area2);
        receiver2 = findViewById(R.id.receiver2);

        submit2 = findViewById(R.id.submit2);
        submit2.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v)
            {
                name = name2.getText().toString();
                birth = birthdate2.getText().toString();
                area = area2.getText().toString();
                receiver = receiver2.getText().toString();
...
        insertData2 (name, birth, area, receiver);
...

public void insertData2 (String name,String birth,String area, String receiver){
        boolean add_data = myDb.insertData(name,birth,area,receiver);

        if (!add_data){
            Toast.makeText(MainActivity.this,"Something went wrong><", Toast.LENGTH_LONG).show();
        }
        else{
            Toast.makeText(MainActivity.this,"Success to add data!", Toast.LENGTH_LONG).show();
        }

    }

// DatabaseHelper.java

public boolean insertData(String childname ,String bornday, String areaprogram, String receiverid){
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put(COL1, childname);
        contentValues.put(COL2, bornday);
        contentValues.put(COL3, areaprogram);
        contentValues.put(COL4, receiverid);

        long result = db.insert(TABLE_NAME, null, contentValues);

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

3 个答案:

答案 0 :(得分:1)

  

它没有给我任何错误报告

您应该使用try and catch块查看正在发生的情况。

${EXECUTABLE_NAME}

答案 1 :(得分:0)

您的DatabaseHelper类是否具有执行SQL命令的SQLiteDatabase对象。

    SQLiteDatabase database
    String myTable = ("CREATE TABLE IF NOT EXISTS myTable (yourColumns);");
    database.execSQL(myTable);
    database.execSQL("INSERT INTO myTable(yourData);"

答案 2 :(得分:0)

方法put()的第一个参数是列的名称,但是您传递了该值。
更改为该值(当然用"Name",{ {1}}等)

"Birthdate"