간단한 데이터베이스를 만들어 제품 값을 추가하고 있습니다. 데이터베이스에 항목을 추가하는 동안 Logcat에서 오류가 발생하고 프로그램이 그곳에서 멈추게됩니다.데이터베이스에 값을 삽입하는 중 오류가 발생했습니다.
나는 데이터가 삽입되었거나 쿼리에 삽입 된 것과 관련하여 오류가 있지만 명확하지 않다. 나는 가능한 모든 대안을 시도했다.
프로그램 코드는 다음과 같습니다
DataBase.java
public class DataBase extends SQLiteOpenHelper
{
public DataBase(Context context) {
super(context, CreateTable.DB_NAME, null, CreateTable.DB_VERSION);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
String create = "Create Table " + CreateTable.TABLE_NAME + "(" + CreateTable.KEY_ID
+ " INTEGER PRIMARY KEY," + CreateTable.KEY_NAME + " TEXT,"
+ CreateTable.KEY_PRICE + " REAL)";
db.execSQL(create);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
public void addProduct(Product p)
{
SQLiteDatabase db = this.getWritableDatabase();
ContentValues c = new ContentValues();
c.put(CreateTable.KEY_NAME, p.getName());
c.put(CreateTable.KEY_PRICE, p.getPrice());
db.insert(CreateTable.TABLE_NAME, null, c);
db.close();
}
}
에게
public class EnterDeatils extends Activity {
EditText name;
EditText price;
Button done;
int id = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.enter_deatils);
name = (EditText) findViewById(R.id.edtname);
price = (EditText) findViewById(R.id.edtprice);
done = (Button) findViewById(R.id.btndone);
done.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Product p = new Product();
p.setId(id);
p.setName(name.getText().toString());
p.setPrice(Float.valueOf(price.getText().toString()));
DataBase d = new DataBase(EnterDeatils.this);
d.addProduct(p);
}
});
}
}
로그 캣 오류 EnterDeatils.java :
01-12 23:06:52.343: E/Database(382): Error inserting pPrice=12.0 pName=ds
01-12 23:06:52.343: E/Database(382): android.database.sqlite.SQLiteException: table Books has no column named pPrice: , while compiling: INSERT INTO Books(pPrice, pName) VALUES(?, ?);
여러분에게 오류 식별에 도움을 요청하십시오. 미리 감사드립니다.
데이터베이스 파일의 이전 버전이 제거되도록 응용 프로그램을 제거하십시오. – laalto
에뮬레이터에서 어떻게 및 응용 프로그램을 제거 할 수 있습니까? – Saggy
설정에서 앱 관리자를 사용하거나 명령 행에서'adb uninstall'을 사용하십시오. –
laalto