2011-09-19 3 views
1

저는 Android에서 새로 개발 중입니다. 응용 프로그램이 연결된 데이터베이스에 대한 일부 데이터를 화면에 보여주는 쉬운 hello-world 응용 프로그램을 프로그래밍해야합니다. 여기 내 노력이지만 "선택 또는 표시"부분에서 충돌이 발생합니다. 이 파일은 Main과 DataBaseHelper의 두 파일로 구성됩니다.Helloworld 데이터베이스 - sqlite와의 Android 연결

홈페이지 :

package com.SQLearning; 

import android.app.Activity; 
import android.os.Bundle; 
import android.widget.TextView; 

public class HelloTestSQLActivity extends Activity { 
    DatabaseHelper dbHelper; 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     //setContentView(R.layout.main); 

     int seats = dbHelper.getSeats("2"); 
     TextView tv = new TextView(this); 
     setContentView(tv); 
     tv.setText("My first Android App: This is a Hello World Test..." + 
       "Database connection in progress..." + 
       "Table 2 has "+seats); 
    } 
} 

DataBaseHelper : 사전에

package com.SQLearning; 

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 { 

    static final String dbName="demoDB"; 
    static final String tablesTable="Tables"; 
    static final String colNum="TableNum"; 
    static final String colSeats="NumSeats"; 

    static final String viewTables="ViewTables"; 

    public DatabaseHelper(Context context) { 
     super(context, dbName, null,2); 
} 

public void onCreate(SQLiteDatabase db) { 
     // TODO Auto-generated method stub 

     db.execSQL("CREATE TABLE "+tablesTable+" ("+colNum+ " INTEGER PRIMARY KEY , "+ 
               colSeats+ " INTEGER)"); 


     db.execSQL("CREATE VIEW "+viewTables+ 
       " AS SELECT "+tablesTable+"."+colNum+" AS _id,"+ 
       " "+tablesTable+"."+colSeats+","+ 
       " FROM "+tablesTable); 

     //Inserts pre-defined departments 
     insertTableRecords(); 
} 

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

     db.execSQL("DROP TABLE IF EXISTS "+tablesTable); 
     db.execSQL("DROP VIEW IF EXISTS "+viewTables); 
     onCreate(db); 
    } 

public void insertTableRecords() { 
    SQLiteDatabase db=this.getWritableDatabase(); 
    ContentValues cv=new ContentValues(); 

    cv.put(colNum, 1); 
    cv.put(colSeats, 3); 
    db.insert(tablesTable, colNum, cv); 

    cv.put(colNum, 2); 
    cv.put(colSeats, 6); 
    db.insert(tablesTable, colNum, cv); 

    cv.put(colNum, 3); 
    cv.put(colSeats, 5); 
    db.insert(tablesTable, colNum, cv); 

    cv.put(colNum, 4); 
    cv.put(colSeats, 2); 
    db.insert(tablesTable, colNum, cv); 

    db.close(); 
} 

public int getSeats(String tablenum) 
    { 
    SQLiteDatabase db=this.getReadableDatabase(); 

    String[] args = new String[] {"1"}; 
    Cursor cur = db.rawQuery(" SELECT "+colSeats+" FROM "+tablesTable+" WHERE "+colNum+"=? ", args); 

    cur.moveToFirst(); 
    db.close(); 

    //return cur.getInt(cur.getColumnIndex(colSeats)); 
    return cur.getInt(0); 

    } 

}

감사합니다.

+3

왜 당신이 DatabaseHelper를 초기화하지 않는 생각? –

+0

@Adil : 굉장한 선택 .... + 1 –

답변

0

나는 .. 아딜이 말을 할

---------- 


/**open the db**/ 


---------- 


DbHelper = new DatabaseHelper(context); 

db = mDbHelper.getWritableDatabase(); 

/**Closes the OLQ Database*/ 
public void closeOLQ() 
{ 
    mDbHelper.close(); 
}