import android.app.*;
import android.content.*;
import android.os.*;
import android.view.*;
import android.view.View.OnClickListener;
import android.widget.*;
public class NewActivity extends Activity implements OnClickListener{
TextView textview;
DBHandler handler;
EditText sname;
EditText sold;
EditText sweight;
EditText shight;
EditText syear;
EditText smonth;
EditText sday;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_new);
handler = DBHandler.open(this);
findViewById(R.id.button3).setOnClickListener(this);
sname = (EditText)findViewById(R.id.editText1);
sold = (EditText)findViewById(R.id.editText2);
shight=(EditText)findViewById(R.id.editText3);
sweight=(EditText)findViewById(R.id.editText4);
syear=(EditText)findViewById(R.id.editText5);
smonth=(EditText)findViewById(R.id.editText6);
sday=(EditText)findViewById(R.id.editText7);
//완료 버튼
Button result = (Button) findViewById(R.id.button2);
result.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
// 인텐트를 객체화 하여 페이지 전환 이벤트를 부여한다.
Intent intent = new Intent(NewActivity.this, SelectActivity.class);
startActivity(intent); // 인텐트를 시작하라는 명령어
}
});
}
public void onClick(View v){
if(v.getId()==R.id.button3){
String name=sname.getText().toString();
if(name.equals("")){
return;
}
int old = Integer.parseInt(sold.getText().toString());
int hight = Integer.parseInt(shight.getText().toString());
int weight = Integer.parseInt(sweight.getText().toString());
int fac = (int) (weight/(hight-100)*0.9*100);
String year= syear.getText().toString();
String month= smonth.getText().toString();
String day= sday.getText().toString();
String sdate = year+"-"+month+"-"+day;
handler.insert(name,old,fac,sdate);
Toast.makeText(NewActivity.this, "저장성공", Toast.LENGTH_SHORT).show();
}
}
}
입력받아서 데이터베이스에 저장하는부분 ------------------------------------------------------------------↑
DB핸들러
------------------------------------------------------------------------------------------------------------
public class DBHandler {
private Context context;
private DBHelper helper;
private SQLiteDatabase db;
private DBHandler(Context context){
this.context=context;
helper = new DBHelper(context);
db=helper.getWritableDatabase();
}
public static DBHandler open(Context context){
DBHandler handler = new DBHandler(context);
return handler;
}
public void close(){
helper.close();
}
public Cursor selectAlldata(){
Cursor c = db.query("users",new String[]{"_id","name","old","fac","sdate"},null,null,null,null,null,null);
return c;
}
public void insert(String name,int old,int fac,String sdate){
try{
ContentValues values=new ContentValues();
values.put("name", name);
values.put("old", old );
values.put("fac", fac);
values.put("sdate",sdate);
/*values.put("year", year);
values.put("month", month);
values.put("day", day); ,"year","month","day"*/
long result = db.insert("users", null,values);
Log.d("BB","삽입성공!!:"+result);
}catch(Exception e){
Log.d("BB","에러메세지"+e);
}
}
}
DB헬퍼-------------------------------------------------------------------------
public class DBHelper extends SQLiteOpenHelper {
private static final String DB_NAME = "users.db";
private static final int DB_VER = 1;
public DBHelper(Context context){
super(context,DB_NAME,null,DB_VER);
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
String sql="create table users("+"_id integer primary key autoincrement,"+" name text not null," +" old integer not null,"+" fac integer not null,"+" sdate text not null,)";
db.execSQL(sql);
//,"+"year integer not null,"+"month integer not null,"+"day integer not null
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
db.execSQL("drop table if exists users");
onCreate(db);
}
}
이렇게했는데 실행하니 첨부된 그림처럼애러가 나는데 ㅜㅠㅜ어떻게해야될까요 도와주세요 ㅜㅜ




로그켓을 보아하니 sql 구문에 오류가 있군요. 일단 대강 보기로는
String sql="create table users("+"_id integer primary key autoincrement,"+" name text not null," +" old integer not null,"+" fac integer not null,"+" sdate text not null,)";
부분에서 마지막에 ,를 빼셔야 할 것 같구요..
그리고 sql 구문을 왜 스트링으로 조각조각 내셔서 붙이시는지 의문이군요. 아래와 같이 해보시기 바랍니다.
String sql = "create table users(id integer primary key autoincrement, name text not null, old integer not null, fac integer not null, sdate text not null);"
또 잘못된 부분이 있을지도 모르겠습니다.