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

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


我在“主要活动.java和数据库助手.java中放置了一些代码。它没有给我任何错误报告,但是当我尝试运行模拟器和输入数据时,我的输入可以插入到sqlite数据库中。


oncreate主要活动


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();

        }


    }

数据库助手.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;

        }

    }


LEATH
浏览 96回答 3
3回答

缥缈止盈

它不会给我任何错误报告您应该使用尝试并捕获块来查看正在发生的事情。try{&nbsp; &nbsp;boolean add_data = myDb.insertData(name,birth,area,receiver);&nbsp; &nbsp;Toast.makeText(MainActivity.this,"Success to add data!", Toast.LENGTH_LONG).show();}catch(Exception e){&nbsp; &nbsp;e.printStackTrace();}

PIPIONE

该方法的第一个参数是列的名称,但您传递的值。更改为以下内容(当然,请替换为列名称,如 、等):put()"Name""Birthdate"public boolean insertData(String Name,String Birthdate,String Area, String ID){&nbsp; &nbsp; SQLiteDatabase db = this.getWritableDatabase();&nbsp; &nbsp; ContentValues contentValues = new ContentValues();&nbsp; &nbsp; contentValues.put(ColunNameForName, Name);&nbsp; &nbsp; contentValues.put(ColunNameForBirthdate, Birthdate);&nbsp; &nbsp; contentValues.put(ColunNameForArea, Area);&nbsp; &nbsp; contentValues.put(ColunNameForID, ID);&nbsp; &nbsp; long result = db.insert(TABLE_NAME, null, contentValues);&nbsp; &nbsp; if(result == -1){&nbsp; &nbsp; &nbsp; &nbsp; return false;&nbsp; &nbsp; }&nbsp; &nbsp; else{&nbsp; &nbsp; &nbsp; &nbsp; return true;&nbsp; &nbsp; }}

一只斗牛犬

您的数据库助手类是否具有执行 SQL 命令的 SQLite 数据库对象。&nbsp; &nbsp; SQLiteDatabase database&nbsp; &nbsp; String myTable = ("CREATE TABLE IF NOT EXISTS myTable (yourColumns);");&nbsp; &nbsp; database.execSQL(myTable);&nbsp; &nbsp; database.execSQL("INSERT INTO myTable(yourData);"
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java