【问题标题】:SQLite : Update not workingSQLite:更新不起作用
【发布时间】:2018-05-07 12:31:22
【问题描述】:

参考下面的帖子,但对我没有帮助

问题是我将更改数据并单击保存按钮它无法更新我的数据

当我打印我的 ID 然后它说 NULL

更新查询

db.update(COMPANY, values, KEY_ID + " = ?",
                new String[] { String.valueOf(company.getId()) });

Java 代码:

else{
    count = 0;

Company company = new Company();                                   
company.setName(etCompanyName.getText().toString().trim())                            
company.setWebsite(etWebsite.getText().toString().trim());
company.setEmail(etEmail.getText().toString().trim());                                
company.setPhoneHome(etPhoneHome.getText().toString().trim());                                    
company.setPhonePrimary(etPhonePrimary.getText().toString().trim());                                
company.setAddressLine1(etAddressLine1.getText().toString().trim());                                    

 long isUpdated = myDb.updateCompany(company);

 //Show id hear But it's null
 Log.e("TAG", "Id : " + company.getId());

 if (isUpdated != -1) {
 Toast.makeText(getApplicationContext(), "Company Update Successfully: " + isUpdated, Toast.LENGTH_SHORT).show();
 } else {
        Toast.makeText(getApplicationContext(), "Something wrong", Toast.LENGTH_SHORT).show();
         }
     Log.e("Button..."," Update Button Clickd ");
     finish();
}

当我点击保存按钮时,它会打印 Toast msg : 公司更新成功0每次

【问题讨论】:

  • 我没有在您的代码中看到您设置 id 的位置。 company.setId的线路在哪里?
  • 我无法设置 id 我只是使用 LOG 来查看 id 是否更新构象数据但 id 为空 @RubioRic
  • 我不明白你,你的更新查询需要一个 id。如果您不建立一个,则不会更新任何行
  • 你在哪里设置 ID:你喜欢这个 company.setId(System.currentTimeMillis()) ;在模型类中将 Id 设为 long
  • 包含 id 值,就像您在其他字段(名称、网站等)中所做的一样。您以某种方式恢复了这些字段值以显示它们。您必须在执行更新之前恢复 id。像这样的东西:company.setId(getIntent().getExtras().getString("id"));

标签: java android sqlite


【解决方案1】:

已添加代码..

Company company = new Company();   
company.setId(1);                            
company.setName(etCompanyName.getText().toString().trim()) 
...
long isUpdated = myDb.updateCompany(company);

【讨论】:

  • 没有,当你设置不同的id和不同的数据时,它会更新。
  • 每次我想改变像company.setId(1);company.setId(2);,像show on........
  • 否,假设您显示数据删除回收站视图,并且用户选择显示详细信息视图的任何项目,此时您将 id 设置为 company 并更新它。
  • 哦,我就试试这个我是在我运行的,看看它是否适合我
  • 但听到的是 1 个问题,它会影响另一条记录
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-26
相关资源
最近更新 更多