Android 未更新我的行为什么在数据库中?

Android 未更新我的行为什么在数据库中?,android,sqlite,Android,Sqlite,更新方法更改行,但它不工作相同的结果显示,就像我们添加数据,但我想更改表的行,但它无法正常工作 public int UpdateUserDetails(String name, String location, String designation ,String id) { SQLiteDatabase db = this.getWritableDatabase(); ContentValues cVals = new ContentValues(); cVals.p

更新方法更改行,但它不工作相同的结果显示,就像我们添加数据,但我想更改表的行,但它无法正常工作

public int UpdateUserDetails(String name, String location, String designation ,String id) {
    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues cVals = new ContentValues();
    cVals.put(KEY_ID,id);
    cVals.put(KEY_NAME,name);
    cVals.put(KEY_LOC, location);
    cVals.put(KEY_DESG, designation);
    int count = db.update(TABLE_Users, cVals, KEY_ID+ "= ?",new String[{id});

    return  count;
}
主要活动类

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class VladimirPutin extends AppCompatActivity {
    EditText name, loc, desig, Sno;
    Button saveBtn, updateBtn;
    Intent intent;
    Toolbar toolbar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        getSupportActionBar().setTitle("Home Page");
        toolbar.setNavigationContentDescription("Nevigation icon");

        name = (EditText) findViewById(R.id.editname);
        loc = (EditText) findViewById(R.id.editlocation);
        desig = (EditText) findViewById(R.id.editdesignation);
        Sno = (EditText) findViewById(R.id.serialid);
        saveBtn = (Button) findViewById(R.id.add);
        updateBtn = (Button) findViewById(R.id.update);
        saveBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String username = name.getText().toString() + "\n";
                String location = loc.getText().toString();
                String designation = desig.getText().toString();
                DataBaseHelper dbHandler = new DataBaseHelper(VladimirPutin.this);
                dbHandler.insertUserDetails(username, location, designation);
                intent = new Intent(VladimirPutin.this, DetailsActivity.class);
                startActivity(intent);
                Toast.makeText(getApplicationContext(), "Details Inserted Successfully", Toast.LENGTH_SHORT).show();
            }
        });
        updateBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String  snumber=Sno.getText().toString()+"\n";
                String username = name.getText().toString();
                String location = loc.getText().toString();
                String designation = desig.getText().toString();
                DataBaseHelper dbHandler = new DataBaseHelper(VladimirPutin.this);
                dbHandler.UpdateUserDetails(username, location, designation,snumber);
                intent = new Intent(VladimirPutin.this, DetailsActivity.class);
                startActivity(intent);
                Toast.makeText(getApplicationContext(), "Details updated  Successfully", Toast.LENGTH_SHORT).show();
            }
        });
    }
}

当我使用
游标
类作为从数据库获取的值时,我从一周开始就在这个项目上工作,但不知道我会犯什么错误。

用更新方法调用替换下行
int count=db.update(表用户,cVals,键ID+“=”+ID,null)


并移除线路cVals.put(键号,ID)

首先可能是语法错误。我建议将
KEY\u ID+“=?”
更改为
KEY\u ID+“=?”
。这意味着什么呢?
新字符串[{id}
?奇怪的代码。

请看id列的类型是什么?INTEGER是类型。