2012-10-09 5 views
0

아래 코드는 제가 사용하고있는 코드입니다 .. 또한 코드가 표시되어 있습니다 .. 코드의 각 줄을 살펴 보았지만 couldnt 할 수는 있습니다 .. 도와주세요 ..데이터베이스를 생성하면서 안드로이드 오류가 발생했습니다

아래
public class CenterCollectionDatabase extends Activity { 

public static final String KEY_ID = "id"; 
public static final String KEY_ROUNDID = "round"; 
public static final String KEY_PLAYERID = "playerid"; 
public static final String KEY_MAAL = "maal"; 
public static final String KEY_POINT = "point"; 
public static final String KEY_WON = "won"; 
private static final String DATABASE_NAME ="center_collection"; 
private static final String DATABASE_TABLE= "transaction"; 
private static final int DATABASE_VERSION = 1; 
private DbHelper ourHelper; 
private final Context ourContext; 
private SQLiteDatabase ourDatabase; 

private static class DbHelper extends SQLiteOpenHelper{ 

    public DbHelper(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("CREATE TABLE " + DATABASE_TABLE +" ("+ 
       KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "+ 
       KEY_ROUNDID + " INTEGER, "+ 
       KEY_PLAYERID + " INTEGER, "+ 
       KEY_POINT + " INTEGER, "+ 
       KEY_MAAL + " INTEGER, "+ 
       KEY_WON+ " INTEGER);"   
      ); 
    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     // TODO Auto-generated method stub 

     db.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE); 
     onCreate(db); 
    } 

} 

public CenterCollectionDatabase(Context c) 
{ 
    ourContext = c; 
} 

public CenterCollectionDatabase open() throws SQLException{ 
    ourHelper = new DbHelper(ourContext); 
    ourDatabase = ourHelper.getWritableDatabase(); 
    return this; 

} 
public void close() 
{ 
    ourHelper.close(); 
} 

public long add_score(int round, int playerid, int point, int maal, int won) { 

    ContentValues cv = new ContentValues(); 
    cv.put(KEY_ROUNDID, round); 
    cv.put(KEY_PLAYERID, playerid); 
    cv.put(KEY_POINT, point); 
    cv.put(KEY_MAAL, maal); 
    cv.put(KEY_WON, won); 

    return ourDatabase.insert(DATABASE_TABLE, null, cv); 
} 
    } 

는 확실하지 오류

10-09 23:25:52.342: E/AndroidRuntime(584): FATAL EXCEPTION: main 
10-09 23:25:52.342: E/AndroidRuntime(584): android.database.sqlite.SQLiteException: near "transaction": syntax error: CREATE TABLE transaction (id INTEGER PRIMARY KEY AUTOINCREMENT, round INTEGER, playerid INTEGER, point INTEGER, maal INTEGER, won INTEGER); 
10-09 23:25:52.342: E/AndroidRuntime(584): at android.database.sqlite.SQLiteDatabase.native_execSQL(Native Method) 
10-09 23:25:52.342: E/AndroidRuntime(584): at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1727) 
10-09 23:25:52.342: E/AndroidRuntime(584): at com.vivek.marriage_center_collection.CenterCollectionDatabase$DbHelper.onCreate(CenterCollectionDatabase.java:41) 
10-09 23:25:52.342: E/AndroidRuntime(584): at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:106) 
10-09 23:25:52.342: E/AndroidRuntime(584): at com.vivek.marriage_center_collection.CenterCollectionDatabase.open(CenterCollectionDatabase.java:68) 
10-09 23:25:52.342: E/AndroidRuntime(584): at com.vivek.marriage_center_collection.ScoreEntry$1.onClick(ScoreEntry.java:133) 
10-09 23:25:52.342: E/AndroidRuntime(584): at android.view.View.performClick(View.java:2408) 
10-09 23:25:52.342: E/AndroidRuntime(584): at android.view.View$PerformClick.run(View.java:8816) 
10-09 23:25:52.342: E/AndroidRuntime(584): at android.os.Handler.handleCallback(Handler.java:587) 
10-09 23:25:52.342: E/AndroidRuntime(584): at android.os.Handler.dispatchMessage(Handler.java:92) 
10-09 23:25:52.342: E/AndroidRuntime(584): at android.os.Looper.loop(Looper.java:123) 
10-09 23:25:52.342: E/AndroidRuntime(584): at android.app.ActivityThread.main(ActivityThread.java:4627) 
10-09 23:25:52.342: E/AndroidRuntime(584): at java.lang.reflect.Method.invokeNative(Native Method) 
10-09 23:25:52.342: E/AndroidRuntime(584): at java.lang.reflect.Method.invoke(Method.java:521) 
10-09 23:25:52.342: E/AndroidRuntime(584): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
10-09 23:25:52.342: E/AndroidRuntime(584): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
10-09 23:25:52.342: E/AndroidRuntime(584): at dalvik.system.NativeStart.main(Native Method) 
+0

이 이야기 라인을 제공하십시오 about.l –

+0

이 오류는 다음과 같습니다 : 구문 오류 : CREATE TABLE 트랜잭션 (id INTEGER PRIMARY KEY AUTOINCREMENT, roundid INTEGER, playerid INTEGER, point INTEGER, maal INTEGER, INTEGER); '그 줄에 –

답변

2

문제는 귀하의 테이블 이름이라고 생각합니다. 이것은 sqlite의 키워드이므로 테이블 이름으로 사용할 수 없습니다. 링크에서

는 "... 표준 SQL 테이블의 이름으로 사용되지 않을 수 있습니다 키워드의 거대한 수를 지정 ..."

SQLite docs

+0

멋진 녀석 .. 그것은 일했다. .. 감사합니다 – user98239820

0

데이터베이스 아래

if(counter>0) 
      { 
       Toast.makeText(getApplicationContext(), "Oops Mike! please fill all fields", Toast.LENGTH_SHORT).show(); 
      }else{ 

       CenterCollectionDatabase db = new CenterCollectionDatabase(ScoreEntry.this); 
       db.open(); 

       for(int i=0; i<number_of_player; i++) 
       { 
        int round = 1; 
        int playerid = i; 
        int point = Integer.parseInt(Spoint[i]); 
        int maal = Integer.parseInt(Smaal[i]); 
        int won_who = 0; 

        db.add_score(round, playerid, point, maal, won_who); 

       } 
       db.close(); 

       Toast.makeText(getApplicationContext(), "Record Sucessfully Saved", Toast.LENGTH_SHORT).show(); 

       Intent intent = new Intent(ScoreEntry.this, ScoreBoard.class); 
       startActivity(intent); 

      } 

에 데이터를 저장하는 데 사용되는 코드입니다 이것은 아직

public static final String KEY_ID = "id"; 

는 sqlite가 세계에서

public static final String KEY_ID = "_id"; 

해야합니다.

관련 문제