반응형
    
    
    
  double 및 float 값을 sqlite에 삽입하는 방법은 무엇입니까?
다음은 내 db 생성 코드입니다.
@Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("CREATE TABLE " + TABLE_NAME + " (" + 
                _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + 
                TIME + " INTEGER, " + 
                LONGI + " TEXT, "+
                LATI + " TEXT, "+
                SPEED + " TEXT, "+
                ACCU + " TEXT);");
    }
그런 다음 데이터 포인트 코드를 추가합니다.
private void addGeoDataEntry(double logi, double lati, float speed, float accu) {
        SQLiteDatabase db = gpsDataHelper.getWritableDatabase();
        ContentValues values = new ContentValues();
        values.put(TIME, System.currentTimeMillis());
        values.put(LONGI, logi+"");
        values.put(LATI, lati+"");
        values.put(SPEED, speed+"");
        values.put(ACCU, accu+"");
        db.insertOrThrow(TABLE_NAME, null, values);
    }
내가 전화 할 때
addGeoDataEntry(10.0,11.0,3.0f,1.1f);
다음과 같은 오류가 발생합니다. 이 문제를 해결하는 방법?
03-14 13:57:26.910: I/Database(27910): sqlite returned: error code = 1, msg = near "1.0": syntax error
REAL당신이 찾고있는 것입니다. SQLite 데이터 유형 문서
SQL은 다음 유형의 유사성을 지원합니다.
- 본문
- 숫자
- 정수
- 레알
- 얼룩
열에 대해 선언 된 유형에 "REAL", "FLOAT"또는 "DOUBLE"이 포함되어 있습니다. 열에 'REAL'선호도가 있습니다.
열의 데이터 유형을 NUMERIC 또는 DOUBLE 또는 FLOAT 또는 REAL 로 지정해야합니다.
자세한 내용은 http://sqlite.org/datatype3.html 을 참조하십시오.
실제로 나는 당신의 코드가 괜찮다고 생각합니다. 당신은 당신이했던 것처럼 그 값을 마련합니다. (원한다면)
INTEGER에 비해 너무 큰 System.currentTimeMillis ()에 대한 오류가 보관 수 있습니다.
    enter code here
package in.my;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DBAdapter {    
    private final Context context; 
    private DatabaseHelper DBHelper;
    private SQLiteDatabase db;
    private static final String DATABASE_NAME = "helper.db";
    private static final int DATABASE_VERSION = 1;
    public static final String KEY_ID = "_id";
    private static final String Table_Record =
        "create table Student (_id integer primary key autoincrement, "
        + "Name text not null,rate integer, Phone text not null,Salary text not null,email text not null,address text not null,des text not null,qual text not null,doj text not null);";
    public DBAdapter(Context ctx) 
    {
        this.context = ctx;
        DBHelper = new DatabaseHelper(context);
    }
    private class DatabaseHelper extends SQLiteOpenHelper
    {
        public DatabaseHelper(Context context)
                 {
            super(context, DATABASE_NAME, null, DATABASE_VERSION);
            // TODO Auto-generated constructor stub
        }
        @Override
        public void onCreate(SQLiteDatabase db) {
            // TODO Auto-generated method stub
            db.execSQL(Table_Record);
        }
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            // TODO Auto-generated method stub
        }
    }
        public DBAdapter open() throws SQLException
        {
            db = DBHelper.getWritableDatabase();
            return DBAdapter.this;
        }
        //---closes the database---
        public void close() 
        {
            DBHelper.close();
        }
        public long insertTitle(String name,String phone,String web,String des,String address,String doj,String qual,String sal,int rate) 
        {
            ContentValues initialValues = new ContentValues();
            initialValues.put("Name", name);
            initialValues.put("Phone", phone);
            initialValues.put("email", web);
            initialValues.put("des", des);
            initialValues.put("Salary", sal);
            initialValues.put("qual", qual);
            initialValues.put("address", address);
            initialValues.put("doj", doj);
            initialValues.put("rate", rate);
            return db.insert("Student", null, initialValues);
        }
        public boolean deleteTitle(long rowId) 
        {
            return db.delete("Student", KEY_ID + 
                    "=" + rowId, null) > 0;
        }
        public boolean UpdateTitle(long id,String name,String phone,String web,String des,String address,String doj,String qual,String sal,int rate) 
        {
            ContentValues initialValues = new ContentValues();
            initialValues.put("Name", name);
            initialValues.put("Phone", phone);
            initialValues.put("email", web);
            initialValues.put("des", des);
            initialValues.put("qual", qual);
            initialValues.put("Salary", sal);
            initialValues.put("address", address);
            initialValues.put("doj", doj);          
            initialValues.put("rate", rate);
            return db.update("Student",initialValues, KEY_ID + "=" + id, null)>0;
            //return db.insert("Student", null, initialValues);
        }
        public Cursor getAllRecords()
        {
            return db.query("Student", new String[] {
                    KEY_ID,
                    "Name", 
                    "Phone",
                    "email",
                    "address", 
                    "des",
                    "qual",
                    "doj",
                    "Salary",
                    "rate"
            },
                    null, 
                    null, 
                    null, 
                    null, 
                    null);
        }
    }
참조 URL : https://stackoverflow.com/questions/9701616/how-to-insert-double-and-float-values-to-sqlite
반응형
    
    
    
  'ProgramingTip' 카테고리의 다른 글
| UIPageViewController 제스처 인식기 (0) | 2021.01.10 | 
|---|---|
| 정수의 거듭 제곱 계산 (0) | 2021.01.10 | 
| 다음을 기준으로 HTML 입력 필드 정렬 : (0) | 2021.01.10 | 
| PHPExcel 및 텍스트 배치 (0) | 2021.01.10 | 
| Python 목록 추가 메소드가 새 목록을 반환하도록 허용 (0) | 2021.01.10 |