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

안드로이드 sqlite 질문좀 드리겟습니다.

0 추천

//DataBase.java 입니다.

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DataBase extends SQLiteOpenHelper {

 public Lock_DataBase(Context context) {
  super(context, "DB.db", null, 1);

 }

 @Override
 public void onCreate(SQLiteDatabase db) {
  db.execSQL("CREATE TABLE DB(name String);");
  db = this.getWritableDatabase();
  
 }

 @Override
 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  db.execSQL("drop table if exits DB");
  onCreate(db);

 }

}

//Main문에 dbHelper를 정의해논겁니다.

SQLiteOpenHelper dbHelper = newDataBase(this);
DataBase mhelper;

//버튼을 클릭시 DB에 저장을할려고합니다.

  SQLiteDatabase db = dbHelper.getWritableDatabase();
   ContentValues cv = new ContentValues();
   String sql = "insert into DB values(" + mv.str + ")";
   db.execSQL(sql);
   cv.put("name", mv.str);
   db.insert("DB", null, cv);

 

소스를 보시다시피 제가 정의를 해 놓았습니다.

하지만 계속 오류가 나서 질문을 드리겟습니다. 혹시 여기서 제가 문제점과 조언좀 부탁드립니다.

오류난 부분에 대한 설명도 간단하게 부탁드립니다.

글쉥 (430 포인트) 님이 2013년 7월 2일 질문
글쉥님이 2013년 7월 2일 수정

2개의 답변

0 추천
 
채택된 답변
무슨 에러가 발생하고 있는지 몰라서 답변 달기가 거시기 하지만..
지레 짐작으로 짚어보자면
1. db.execSQL("CREATE TABLE DB(name String);");  에서 String 을 TEXT로 바꿔보세요.
그리고  바로 아랫줄 this.getWritableDatabase() 는 의미 없어 보이는 데요.. ;
DrKein (870 포인트) 님이 2013년 7월 2일 답변
글쉥님이 2015년 12월 7일 채택됨
우선 text로 바꿔보았습니다.
암호학도 관련하여 하다보니 에러가 무슨의미인지는 알겠는데
여기서 더 어떻게 해야할지 조언좀 부탁드려요 ㅠ
우선은 insert 쿼리와 cv 를 이용한 insert 가 중복이네요.
또, insert 문에서 mv.str 의 값 (문자열) 중 쿼리문에 직접 사용할 수 없는 문자가 있어서 오류발생했습니다.
mv.str 대신 평문을 넣어서 테스트 해보세요.
0 추천
감사합니다. 암호화 안시키고 저장해도 안되던게

중복 문구를 지우니 바로 되네요 ㅎ 감사합니다.
글쉥 (430 포인트) 님이 2013년 7월 3일 답변
...