코드는 아래와 같이 입력을 했는데요
public DBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
// DB를 새로 생성할 때 호출되는 함수
@Override
public void onCreate(SQLiteDatabase db) {
// 새로운 테이블 생성
/* 이름은 MONEYBOOK이고, 자동으로 값이 증가하는 _id 정수형 기본키 컬럼과
item 문자열 컬럼, price 정수형 컬럼, create_at 문자열 컬럼으로 구성된 테이블을 생성. */
db.execSQL("CREATE TABLE Angle (_id INTEGER PRIMARY KEY AUTOINCREMENT, readBuffer_X TEXT, readBuffer_Y TEXT, readBuffer_Z TEXT);");
}
// DB 업그레이드를 위해 버전이 변경될 때 호출되는 함수
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
public void insert(String readBuffer_X, String readBuffer_Y, String readBuffer_Z) {
// 읽고 쓰기가 가능하게 DB 열기
SQLiteDatabase db = getWritableDatabase();
// DB에 입력한 값으로 행 추가
db.execSQL("INSERT INTO Angle VALUES(null, '" + readBuffer_Y + "', " + readBuffer_Z + ", '" + readBuffer_X + "');");
db.close();
}
public void update(String readBuffer_Y, String readBuffer_Z) {
SQLiteDatabase db = getWritableDatabase();
// 입력한 항목과 일치하는 행의 가격 정보 수정
db.execSQL("UPDATE Angle SET readBuffer_Z=" + readBuffer_Z + " WHERE readBuffer_Y='" + readBuffer_Y + "';");
db.close();
}
public void delete(String readBuffer_Y) {
SQLiteDatabase db = getWritableDatabase();
// 입력한 항목과 일치하는 행 삭제
db.execSQL("DELETE FROM Angle WHERE readBuffer_Y='" + readBuffer_Y + "';");
db.close();
}
public String getResult() {
// 읽기가 가능하게 DB 열기
SQLiteDatabase db = getReadableDatabase();
String result = "";
// DB에 있는 데이터를 쉽게 처리하기 위해 Cursor를 사용하여 테이블에 있는 모든 데이터 출력
Cursor cursor = db.rawQuery("SELECT * FROM Angle", null);
while (cursor.moveToNext()) {
result += cursor.getString(0)
+ " : "
+ cursor.getString(1)
+ " | "
+ cursor.getInt(2)
+ " | "
+ cursor.getString(3)
+ " | ";
}
return result;
}
}
다음과 같이 에러가 떳습니다,
05-14 16:59:40.479 3278-3278/com.mcuhq.simpletest_4 E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.mcuhq.simpletest_4, PID: 3278
android.database.sqlite.SQLiteException: no such table: Angle (code 1): , while compiling: INSERT INTO Angle VALUES(null, ' 00001', 00005, ' 00000');
at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:892)
at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:503)
at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:610)
at dalvik.system.NativeStart.main(Native Method)
05-14 16:59:42.029 3278-3278/com.mcuhq.simpletest_4 I/Process: Sending signal. PID: 3278 SIG: 9
뭐가 잘못되었는지 모르겠습니다.
도와주시면 감사하겠습니다.
db와 관련된 메인 액티비티 추가했습니다
final DBHelper dbHelper = new DBHelper(getApplicationContext(), "Angle.ab",null,1);
final TextView result = (TextView) findViewById(R.id.text1);
mHandler = new Handler(){ //블루투스 데이터 수신 핸들러
public void handleMessage(Message msg){
if(msg.what == MESSAGE_READ){
try {
readMessage = new String((byte[]) msg.obj, "UTF-8");
if((readMessage.indexOf("s") == 0) && (readMessage.indexOf("e") == 21)) {
if(readMessage != null) { // readmessage와 null(빈값)은 같지 않다
test = readMessage.split("");
str00 = test[0]+test[2]+test[3]+test[4]+test[5]+test[6]+test[7]+test[8]+test[9];
str0 = readMessage.substring(0,22);
str1 = readMessage.substring(1,7); // indexof - 데이터값이 01234 56789 00000 출력될때substring(0,5)일때
str2 = readMessage.substring(8,14); // ex) substring(0,5)이면 01234까지
str3 = readMessage.substring(16,21);
// 모듈에서 넘어오는 데이터에 부호(+,-)값이 포함 되있음
// indexof에 부호값까지 포함함
}
else if(readMessage == null){
readMessage = str0;
}
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
mReadBuffer.setText(str0);
mRead_X.setText(str1); // setText str1값을 mRead_X에 출력
mRead_Y.setText(str2);
mRead_Z.setText(str3);
String readBuffer_X = mRead_X.getText().toString();
String readBuffer_Y = mRead_Y.getText().toString();
String readBuffer_Z = mRead_Z.getText().toString();
dbHelper.insert(readBuffer_X, readBuffer_Y, readBuffer_Z);
result.setText(dbHelper.getResult());
}
if(msg.what == CONNECTING_STATUS){
if(msg.arg1 == 1)
mBluetoothStatus.setText("Connected to Device: " + (String)(msg.obj));
else
mBluetoothStatus.setText("Connection Failed");
}
}
};