为什么也显示添加成功,但是数据表里面不见数据添加?(已确定操作表与生成表为同一个)

为什么也显示添加成功,但是数据表里面不见数据添加?(已确定操作表与生成表为同一个)

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕雪 2021-03-29 10:06:37

同学,你好!你是如何确定表中没有添加数据的呢?另外db

http://img1.sycdn.imooc.com//climg/6061334d095a624004570051.jpg

最好用getWritableDatabase()来获取。

祝:学习愉快!


  • 提问者 慕移动034143 #1

    您好,我是通过Database Navigator插件来查看数据表中数据变化的。

    http://img1.sycdn.imooc.com//climg/6061902409320e2705060178.jpg

    也尝试了使用getWritableDatabase()来获取SQLiteDatabase实例,也是显示添加成功但是数据表内没变化。

    2021-03-29 16:35:12
  • 提问者 慕移动034143 #2
    package com.example.meappthree.Dao;

    import android.content.ContentValues;
    import android.content.Context;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteOpenHelper;
    import android.util.Log;
    import android.widget.Toast;

    import com.example.meappthree.Bean.User;

    import javax.security.auth.login.LoginException;


    public class UserDao {

    private SQLiteDatabase db;

       public UserDao(Context context) {

    //实例化辅助类
           //参数一、上下文环境
           //参数二、数据库路径

           //参数三、游标工厂 , null
           //参数四、版本号,能够决定是否会调用升级方法

           SQLiteOpenHelper helper = new SQLiteOpenHelper(context, context.getFilesDir().getAbsolutePath() + "MeAppThree2.db", null, 1) {
    //创建数据库、创建表
               @Override
               public void onCreate(SQLiteDatabase db) {
    Log.e("TAG", "onCreate: 创建成功");
                   String sql = "create table UserTb(" +
    "_id integer primary key autoincrement," +
    "userName varchar(50) not null," +
    "steps varchar(20)," +
    "userPassword varchar(50) not null," +
    "phone varchar(20) not null," +
    "idNo varchar(50) not null)";
                   db.execSQL(sql);
               }

    //升级
               @Override
               public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }
    };

           //获取数据库对象

           //1/如果数据库不存在  则先创建再打开
           //2、如果数据库存在,但是版本号没变化,则直接打开
           //3、如果数据库存在,版本号发生变化,则先执行升级方法,再打开
         //  db = helper.getReadableDatabase();

           db = helper.getWritableDatabase();

       }

    public void Insert(ContentValues values) {


    db.insert("UserTb", null, values);
       }
    }
    2021-03-29 16:36:18
  • 提问者 慕移动034143 #3
    package com.example.meappthree.UI;


    public class RegisteredActivity extends AppCompatActivity {

    private UserDao userDao ;
       private EditText userName;
       private EditText password;
       private EditText passwordTwo;
       private EditText phone;
       private EditText idNo;
       private RadioGroup radioGroup;
       private   RadioButton radioButton;

       @Override
       protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
           setContentView(R.layout.activity_registered);
           userDao = new UserDao(this);

           userName = findViewById(R.id.username_regist);
           password = findViewById(R.id.password_regist_1);
           passwordTwo = findViewById(R.id.password_regist_2);
           phone = findViewById(R.id.uesr_phone_edit);
           idNo = findViewById(R.id.uesr_IdNo_edit);
           radioGroup = findViewById(R.id.user_steps);
           radioButton = findViewById(radioGroup.getCheckedRadioButtonId());



           findViewById(R.id.regist).setOnClickListener(new View.OnClickListener() {
    @Override
               public void onClick(View v) {

    String user_Name = userName.getText().toString();
                   String user_password = password.getText().toString();
                   String user_passwordTwo = passwordTwo.getText().toString();
                   String user_phone = phone.getText().toString();
                   String user_idNo = idNo.getText().toString();
                   String user_steps = radioButton.getText().toString();

    User user = new User(user_Name,user_password,user_phone,user_idNo,user_steps);

                   ContentValues values = new ContentValues();
                   values.put("idNo",user.getIdNo());
                   values.put("phone",user.getPhone());
                   values.put("steps",user.getSteps());
                   values.put("userName",user.getUserName());
                   values.put("userPassword",user.getPassword());
                   userDao.Insert(values);
                   Toast.makeText(RegisteredActivity.this,"添加成功",Toast.LENGTH_SHORT).show();
               }
    });

       }
    }


    2021-03-29 16:37:29
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.Android 网络操作与流行框架
  • 参与学习           人
  • 提交作业       220    份
  • 解答问题       1800    个

本阶段是联网及数据处理的必备技能。课程从网络基础知识到线程间协同工作、异步下载处理;从文件存储、到轻量级数据库SQLite的使用;最后利用最流程的第三方框架助你快速开发企业级APP。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师