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

如何通过用户输入将数据插入到 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();        }    }数据库助手.javapublic 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贡献2041条经验 获得超4个赞

它不会给我任何错误报告


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


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贡献1829条经验 获得超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贡献1784条经验 获得超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
  • 3 回答
  • 0 关注
  • 94 浏览

添加回答

举报

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