2013-03-19 15 views
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(?, ?, ?, ?, ?, ?, ?, ?, ?); 

當我使用模擬器時,會發生這種情況。但是,當我在我的設備上嘗試它時,數據插入似乎沒有問題。我很困惑爲什麼會發生這種情況。有人可以向我解釋嗎?

此外,這裏是我的DBAdapter和我的ViewClient.class的代碼,這可能有助於明確問題的出處。

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:從我DBAdapter

代碼

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); 
} 
} 

回答

0

HEIGHT + 「整數不爲空,」

而且you're做:將高度= 53.0

所以我想這可能是原因

UPD - 我看到你有重量整數和鴕鳥政策有問題,所以應該是不同的東西呢:)

+0

我已經在我的查詢中刪除了「not null」部分,但它仍然提到了同樣的問題。 – clairecaceres 2013-03-19 01:30:08

+0

我認爲如果它在設備上工作,然後沒有什麼可以找到。如上所述,仿真器不是最好的工具。 – Roman 2013-03-19 01:32:17

0

如果它在設備上工作和不在模擬器上,它的工作原理。這可能不是你想聽到的,但是模擬器是臭名昭着的並且不一致。我自己也有類似的問題,模擬器和設備的行爲不同 - 「解決方案」不使用模擬器。基本上,如果你的問題是沿着「在仿真器X上,但在設備Y上」,或者只是「爲什麼X不能在仿真器上工作」,那麼模擬器很可能是問題所在。無論如何,解決特定於仿真器的錯誤是沒有用的。

+0

感謝您的回覆並分享了一些您的時間。我想我在面對那個錯誤後才感到恐慌。 – clairecaceres 2013-03-19 01:40:27