为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

LEATH 2022-09-22 16:28:54

我是移动应用程序构建的初学者。我试图将插入数据函数放在我的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;

        }

    }


查看完整描述

3 回答

?
缥缈止盈

TA贡献1704条经验 获得超2个赞

它不会给我任何错误报告


您应该使用尝试并捕获块来查看正在发生的事情。


try{

   boolean add_data = myDb.insertData(name,birth,area,receiver);

   Toast.makeText(MainActivity.this,"Success to add data!", Toast.LENGTH_LONG).show();

}catch(Exception e){

   e.printStackTrace();

}


查看完整回答
反对 回复 2022-09-22
?
PIPIONE

TA贡献1497条经验 获得超9个赞

该方法的第一个参数是列的名称,但您传递的值。

更改为以下内容(当然,请替换为列名称,如 、等):put()"Name""Birthdate"


public boolean insertData(String Name,String Birthdate,String Area, String ID){

    SQLiteDatabase db = this.getWritableDatabase();

    ContentValues contentValues = new ContentValues();

    contentValues.put(ColunNameForName, Name);

    contentValues.put(ColunNameForBirthdate, Birthdate);

    contentValues.put(ColunNameForArea, Area);

    contentValues.put(ColunNameForID, ID);


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


    if(result == -1){

        return false;

    }

    else{

        return true;

    }

}


查看完整回答
反对 回复 2022-09-22
?
一只斗牛犬

TA贡献0条经验 获得超2个赞

您的数据库助手类是否具有执行 SQL 命令的 SQLite 数据库对象。


    SQLiteDatabase database

    String myTable = ("CREATE TABLE IF NOT EXISTS myTable (yourColumns);");

    database.execSQL(myTable);

    database.execSQL("INSERT INTO myTable(yourData);"


查看完整回答
反对 回复 2022-09-22

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信