0

logcat からこのエラーが発生しています。

03-19 08:41:48.174: E/Database(271): Error inserting height=53.0 status=OBESE bmi=38.290850836596654 contact_num=00000000000 address=usa age=21 gender=female weight_client=153.0 full_name=claire
03-19 08:41:48.174: E/Database(271): android.database.sqlite.SQLiteException: table client has no column named height: , while compiling: INSERT INTO client(height, status, bmi, contact_num, address, age, gender, weight_client, full_name) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?);

エミュレータを使用しているとき、それが起こります。しかし、私のデバイスで試してみると、データの挿入は問題ないようです。なぜこれが起こるのか混乱しています。誰か説明してくれませんか?

また、問題がどこにあるかを特定するのに役立つかもしれない私のコードと私のコードがありますDBAdapterViewClient.class

私のからのコードDBAdapter

public static final String TABLE_NAME = "client";
public static final String CLIENT_ID = "client_id";
public static final String FULLNAME = "full_name";
public static final String GENDER = "gender";
public static final String ADDRESS = "address";
public static final String AGE = "age";
public static final String CONTACT_NUM = "contact_num";
public static final String HEIGHT = "height";
public static final String WEIGHT = "weight_client";
public static final String BMI = "bmi";
public static final String STATUS = "status";

String sq_clients = "CREATE TABLE " + TABLE_NAME + 
                        "(" + CLIENT_ID + " integer primary key autoincrement, " +
                        FULLNAME + " text not null, " +
                        GENDER + " text not null, " +
                        ADDRESS + " text not null, " +
                        AGE + " integer not null, " +
                        CONTACT_NUM + " text not null, " +
                        HEIGHT + " integer not null, " +
                        WEIGHT + " integer not null, " +
                        BMI + " integer not null, " +
                        STATUS + " text not null);";

ViewClient.java:

package com.example.********;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class DatabaseViewClient extends Activity {

    private EditText fullname;
    private EditText address_client;
    private EditText age_client;
    private EditText gender;
    private EditText contactNum_client;
    private EditText height_client;
    private EditText weight_client;
    private Button btnSaveCustomer;

    int current_client_id;
    String current_client_fullname;
    String current_client_address;
    String current_client_contactnum;
    String current_client_height;
    String current_client_weight;
    String current_client_gender;
    int current_client_age;
    String current_client_bmi, current_client_status;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.addclient);

        fullname = (EditText) findViewById(R.id.fullname);
        gender = (EditText) findViewById(R.id.gender);
        age_client = (EditText) findViewById(R.id.age_client);
        address_client = (EditText) findViewById(R.id.address_client);
        contactNum_client = (EditText) findViewById(R.id.contactNum_client);
        height_client = (EditText) findViewById(R.id.height_client);
        weight_client = (EditText) findViewById(R.id.weight_client);

        btnSaveCustomer = (Button) findViewById(R.id.save);

        Bundle extras = getIntent().getExtras();
        current_client_id = extras.getInt("CLIENT_ID");
        current_client_fullname = extras.getString("FULLNAME");
        current_client_gender = extras.getString("GENDER");
        current_client_age = extras.getInt("AGE");
        current_client_address = extras.getString("ADDRESS");
        current_client_contactnum = extras.getString("CONTACT_NUM");
        current_client_height = extras.getString("HEIGHT");
        current_client_weight = extras.getString("WEIGHT");
        current_client_bmi = extras.getString("BMI");
        current_client_status = extras.getString("STATUS");

        fullname.setText(current_client_fullname);
        gender.setText(current_client_gender);
        address_client.setText(current_client_address);
        contactNum_client.setText(current_client_contactnum);
        height_client.setText(current_client_height);
        weight_client.setText(current_client_weight);


        fullname.setKeyListener(null);
        gender.setKeyListener(null);
        age_client.setKeyListener(null);
        address_client.setKeyListener(null);
        contactNum_client.setKeyListener(null);
        height_client.setKeyListener(null);
        weight_client.setKeyListener(null);

        btnSaveCustomer.setVisibility(View.GONE);
}
}
4

2 に答える 2

0

HEIGHT + " null でない整数、"

そして、あなたがやっていること: height= 53.0を挿入する

だから多分これが原因だと思う

UPD-重みが整数であり、問​​題がないことがわかりました。そのため、何か違うはずです:)

于 2013-03-19T01:24:00.520 に答える
0

エミュレーターではなくデバイスで動作する場合は、動作します。これはおそらく聞きたいことではありませんが、エミュレーターはバグが多く、一貫性がないことで有名です。エミュレータとデバイスの動作が異なる場合、同様の質問がありました。「解決策」は、エミュレータを使用しないことです。

基本的に、質問が「エミュレータ X ではあるが、デバイス Y では」、または単に「X がエミュレータで動作しない理由」に沿っている場合は、エミュレータが問題である可能性が最も高くなります。とにかく、エミュレータに固有のバグに対処しても意味がありません。

于 2013-03-19T01:29:48.737 に答える