我无法插入数据

时间:2019-06-05 13:49:21

标签: android sqliteopenhelper

我正在制作一个用于插入数据的应用。但是,当我单击“添加”按钮时,会提供所有详细信息。应用程序使我返回上一页 这是我创建插入类的方式

    public class InsertStudent extends AppCompatActivity {

            Button instudent;
            DBHelper dbHelper;
            EditText sName,sDOB,sAddress;
            @Override
            protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_insert_student);

                instudent = findViewById(R.id.btninsert);
                sName = findViewById(R.id.insertname);
                sDOB = findViewById(R.id.insertdob)

;
            sAddress = findViewById(R.id.insertaddress);

下面是我编码插入数据的方式

instudent.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {

                    String userName = sName.getText().toString();
                    String dateB = sDOB.getText().toString();
                    String addr = sAddress.getText().toString();

                    boolean count = dbHelper.addInfo(userName,dateB,addr );

                    if(count =true){
                        Toast.makeText(InsertStudent.this, "Inserted!", Toast.LENGTH_SHORT).show();
                    }
                    else{
                        Toast.makeText(InsertStudent.this, "Something went wrong!", Toast.LENGTH_SHORT).show();
                    }
                }
            });

这是DBHelper类中的addinfo方法

public boolean addInfo(String stdName, String stdDOB, String stdAddress){

        SQLiteDatabase sqLiteDatabase = this.getWritableDatabase();

        ContentValues contentValues = new ContentValues();
        contentValues.put(UserProfile.Users.COLUMN_STDNAME, stdName);
        contentValues.put(UserProfile.Users.COLUMN_DATEOFBIRTH, stdDOB);
        contentValues.put(UserProfile.Users.TABLE_ADDRESS, stdAddress);


        long result = sqLiteDatabase.insert(UserProfile.Users.TABLE_NAME, null, contentValues);
        if(result==1)
            return false;
        else
            return  true;

    }
}

1 个答案:

答案 0 :(得分:0)

  1. “ SQLiteDatabase”类的插入方法未返回 count,它返回插入行的ID。所以你在检查 如果返回结果为1,这是一个真实的过程,但这不是一种方法 检查插入方法。这意味着您需要检查是否有任何 返回结果,则您的插入操作成功执行,但是如果 出现问题,应用程序将崩溃。

  2. 确保已创建要在其中插入数据的表。