마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

sqlite질문입니다 edittext에서 받은 string을 db에 저장하려나 하나는 잘되는데 하나는 숫자만저장이 도

0 추천

edittext 2개중 한개는 db에 잘올라가는데 한개는 int값만올라가네요

package com.soo.myapplication;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import java.sql.Date;
import java.text.SimpleDateFormat;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final DatabaseHelper DatabaseHelper = new DatabaseHelper(getApplicationContext(),

                "DEMO_SQLITE.db", null, 1);

        // 테이블에 있는 모든 데이터 출력
        final TextView result = (TextView) findViewById(R.id.result);
        final EditText etDate = (EditText) findViewById(R.id.date);
        final EditText etItem = (EditText) findViewById(R.id.item);
        final EditText etmean = (EditText) findViewById(R.id.mean);


        // 날짜는 현재 날짜로 고정
        // 현재 시간 구하기
        long now = System.currentTimeMillis();
        Date date = new Date(now);
        // 출력될 포맷 설정
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy년 MM월 dd일");
        etDate.setText(simpleDateFormat.format(date));

        // DB에 데이터 추가
        Button insert = (Button) findViewById(R.id.insert);
        insert.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String  date    = etDate.getText().toString();
                String  item    = etItem.getText().toString();
                String  mean   =  etmean.getText().toString();

                //입력값이 누락된게 없는지 확인
                if(date.length() == 0 || item.length() == 0 || mean.length() == 0 ) {
                    Toast.makeText( getApplicationContext(), "모든 데이터를 입력하세요.",
                            Toast.LENGTH_SHORT).show();
                }
                else {
                    //DB 삽입 -> 결과 출력 -> 입력필드 초기화
                    DatabaseHelper.insert(date, item, mean);
                    result.setText(DatabaseHelper.getResult());
                    Toast.makeText(getApplicationContext(), "데이터 생성",

                            Toast.LENGTH_SHORT).show();
                    etItem.setText(null);
                    etmean.setText(null);
                }
            }
        });

        // DB에 있는 데이터 수정
//        Button update = (Button) findViewById(R.id.update);
//        update.setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                String item = etItem.getText().toString();
//                String mean = etmean.getText().toString();
//               DatabaseHelper.update(item, mean);
//                result.setText(DatabaseHelper.getResult());
//                Toast.makeText(getApplicationContext(), "데이터 수정",
//
//                        Toast.LENGTH_SHORT).show();
//
//            }
//        });

        // DB에 있는 데이터 삭제
        Button delete = (Button) findViewById(R.id.delete);
        delete.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String item = etItem.getText().toString();

                DatabaseHelper.delete(item);
                result.setText(DatabaseHelper.getResult());
                Toast.makeText(getApplicationContext(), "데이터 삭제",

                        Toast.LENGTH_SHORT).show();

            }
        });

        // DB에 있는 데이터 조회
        Button select = (Button) findViewById(R.id.select);
        select.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                result.setText(DatabaseHelper.getResult());
                Toast.makeText(getApplicationContext(), "데이터 조회",

                        Toast.LENGTH_SHORT).show();

            }
        });
    }
}



package com.soo.myapplication;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;


public class DatabaseHelper extends SQLiteOpenHelper {

    // DBHelper 생성자로 관리할 DB 이름과 버전 정보를 받음
    public DatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory,
                    int version) {
        super(context, name, factory, version);
    }
//    private int a = 0;

    // DB를 새로 생성할 때 호출되는 함수
    @Override
    public void onCreate(SQLiteDatabase db) {

        // 새로운 테이블 생성
        /* 이름은 DEMO_SQLITE이고, 자동으로 값이 증가하는 _id 정수형 기본키 컬럼과
        item 문자열 컬럼, price 문자열 컬럼, create_at 문자열 컬럼으로 구성된 테이블을 생성. */
        db.execSQL( "CREATE TABLE DEMO_SQLITE (_id INTEGER PRIMARY KEY AUTOINCREMENT," +
                "item TEXT, price TEXT, create_at TEXT);");
    }

    // DB 업그레이드를 위해 버전이 변경될 때 호출되는 함수
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }

    public void insert(String create_at, String item, String price) {
        // 읽고 쓰기가 가능하게 DB 열기
        SQLiteDatabase db = getWritableDatabase();

        // DB에 입력한 값으로 행 추가

        ContentValues values = new ContentValues();

       db.execSQL( "INSERT INTO DEMO_SQLITE VALUES(null, '" + item + "', " + price + ", '" + create_at + "');");

        db.close();
    }


//    public void update(String item, String price) {
//        SQLiteDatabase db = getWritableDatabase();
//        // 입력한 항목과 일치하는 행의 가격 정보 수정
//        db.execSQL("UPDATE DEMO_SQLITE SET price=" + price +
//                " WHERE item='" + item + "';");
//        db.close();
//    }

    public void delete(String item) {
//        SQLiteDatabase db = getWritableDatabase();
        SQLiteDatabase db =getWritableDatabase();
        // 입력한 항목과 일치하는 행 삭제
        db.execSQL("DELETE FROM DEMO_SQLITE WHERE item='" + item + "';");
        db.close();
    }

    public String getResult() {
        // 읽기가 가능하게 DB 열기
        SQLiteDatabase db = getReadableDatabase();
        String result = "";

        // DB에 있는 데이터를 쉽게 처리하기 위해 Cursor를 사용하여 테이블에 있는 모든 데이터 출력
        Cursor cursor = db.rawQuery("SELECT * FROM DEMO_SQLITE", null);
        while (cursor.moveToNext()) {
            result += cursor.getString(0)
                    + " : "
                    + cursor.getString(1)
                    + " / "
                    + cursor.getString(2)
                    + "/ "
                    + cursor.getString(3)
                    + "\n";
        }

        return result;
    }
}


열심히 찾아도 잘보이지가 않네요
Soo3142 (190 포인트) 님이 2019년 5월 20일 질문

1개의 답변

0 추천
 
채택된 답변
       db.execSQL( "INSERT INTO DEMO_SQLITE VALUES(null, '" + item + "', '" + price + "', '" + create_at + "');");
 

price 양옆에 ...'" + price + "' ....

식으로 해 보시겠어요?

안드로이드로우 (15,740 포인트) 님이 2019년 5월 20일 답변
Soo3142님이 2019년 5월 20일 채택됨
정말감사합니다 덕분에 잘됬네요 ㅠㅠ
...