내 안드로이드 애플리케이션에 데이터베이스가 있습니다. 문제없이 행을 추가 할 수 있습니다. 그러나 행을 업데이트하려고하면 데이터베이스가 잘못된 값을 열에 넣습니다.데이터베이스의 행을 업데이트하면 열에 잘못된 값이 표시됩니다.
코드를 여러 번 읽었지만 문제를 찾을 수 없으므로 아마도 뚜렷한 문제를 볼 수 없을 정도로 많이 보았을 것입니다. 문제는 데이터베이스 행을 업데이트 할 때입니다. 값은 잘못된 열에 들어갑니다. 모든 열은 새로운 데이터로 채워집니다. 그러나 그들은 정확한 열에 있지 않습니다. 여기
은 예입니다// Inserting row into database gives this correct result
example: | id | column1 | column2 | column3 | column4 | column5 |
| 1 | value1 | value2 | value3 | value4 | value5 |
// after updating the row i get this bad result:
example: | id | column1 | column2 | column3 | column4 | column5 |
| 1 | value1 | value2 | value5 | value3 | value4 |
나는 목록보기 데이터베이스 column1's 값을 표시해야하고 다른 활동에 열의 나머지를 보낼 수 있습니다. 목록보기의 연락처 목록으로 생각하고 연락처를 클릭하면 나머지 정보가 표시됩니다.
나는 이것으로 데이터를 보낼 :
EditContact.putExtra(MyContacts.ROW_ID, rowID);
EditContact.putExtra("PHONE", phoneTextView.getText());
EditContact.putExtra("EMAIL", emailTextView.getText());
EditContact.putExtra("ADRESS", adressTextView.getText());
EditContact.putExtra("NAME", nameTextView.getText());
EditContact.putExtra("COMMENT", commentTextView.getText());
startActivity(EditContact); // start the Activity
을 나는이 같은 정보를 얻을 EditTexts의 정보를 넣어 EditContact 활동에.
if (extras != null) {
rowID = extras.getLong("row_id");
phoneEditText.setText(extras.getString("PHONE"));
emailEditText.setText(extras.getString("EMAIL"));
adressEditText.setText(extras.getString("ADRESS"));
nameEditText.setText(extras.getString("NAME"));
commentEditText.setText(extras.getString("COMMENT"));
}
나는 다음과 같은 데이터베이스에 정보를 저장 :
String phone = phoneEditText.getText().toString();
String email = emailEditText.getText().toString();
String adress = adressEditText.getText().toString();
String name = nameEditText.getText().toString();
String comment = commentEditText.getText().toString();
String spinner1 = (String) spinner1.getSelectedItem();
String spinner2 = (String) spinner2.getSelectedItem();
String spinner3 = (String) spinner3.getSelectedItem();
databaseConnector.updateContact(rowID, spinner1, spinner2, spinner3, phone, email, adress, name, comment);
을 당신은 내가 여기에 세 가지 스피너를 참조한다. 또한 데이터베이스에 연락처를 추가 할 때도 있습니다. 업데이트 후에도 올바른 열에 삽입됩니다. 이 스피너는 viewcontact 활동에서 텍스트로 변환됩니다.
이것은 내가
public void updateContact(long id, String spinner1, String spinner2, String spinner 3, String phone, String email, String adress, String name, String comment)
{
ContentValues editContact = new ContentValues();
editContact .put("SPINNER1", spinner1);
editContact .put("SPINNER2", spinner2);
editContact .put("SPINNER3", spinner3);
editContact .put("PHONE", phone);
editContact .put("EMAIL", email);
editContact .put("ADRESS", adress);
editContact .put("NAME", name);
editContact .put("COMMENT", comment);
open();
database.update(DATABASE_TABLE, editContact , "_id=" + id, null);
close();
}
DatabaseConnector
에서 데이터베이스를 업데이트하는 방법이다 나는 것 정말 누군가가 잘못 될 수 있는지의 아이디어가 있다면 주셔서 감사합니다. 나는 그것을 볼 수 없다. 나는 이것에 대해 새로운 사람이지만 아직 배우고 있습니다. 감사합니다.모든 값이 내가 편집중인 올바른 행에 삽입됩니다. 하지만 잘못된 열에, 나는 오류가 없습니다.
나는 모든 것이 올바른 순서로 이루어져야한다는 것을 여러 번 확인했습니다. 그리고 매번 나는 그것을 놓쳤다. 하지만 지금은 사실 그 부분에만 집중했습니다. 그리고 효과가있었습니다! 고맙습니다 :) – user1512762