2011-12-22 3 views
3

Sqllite Android Application에 데이터베이스를 만들었으며 데이터베이스에 두 개의 테이블을 추가하려고했지만 해당 데이터베이스를 만드는 데 문제가 있습니다. 첫 번째 테이블 만 생성되었습니다. 누구든지 나를 도와 줄 수 있니? 고객에 대한Android 애플리케이션의 단일 데이터베이스에 두 개의 테이블을 만드는 방법은 무엇입니까?

package com.android.cdtech; 

    import java.sql.SQLException; 

    import android.content.ContentValues; 
    import android.content.Context; 
import android.database.Cursor; 
import android.database.sqlite.SQLiteDatabase; 
    import android.database.sqlite.SQLiteOpenHelper; 
    import android.util.Log; 

    public class saveData { 
public static final String KEY_ROWID = "rowid"; public static final String KEY_DATE = "Date";public static final String KEY_NAME = "CustomerName";public static final String KEY_AMOUNT = "Amount";public static final String KEY_BANK = "Banks"; 
private static final String TAG = "DBAdapter"; 
public static final String KEY_BUSNAME="BusinessName";public static final String KEY_ADD="Address";public static final String KEY_CPERSON="ContactPerson";; 
private static final String DATABASE_NAME = "EXPORTDETAILS"; 
private static final String DATABASE_TABLE = "Payment"; 
private static final String DATABASE_TABLE2 = "Customer"; 
private static final int DATABASE_VERSION = 1; 
private static String DATABASE_CREATE = 
"create table Payment (_id integer primary key autoincrement, " 
+ "Date text not null,"+"CustomerName text not null,"+"Amount text not null,"+"Banks text not null);"; 

private static final String DATABASE_CREATECUS = 
      "create table Customer (_id integer primary key autoincrement, " 
      + "BusinessName text not null,"+"Address text not null,"+"ContactPerson text not null,"+"PhoneNumber text not null,);"; 
private final Context context; 
private DatabaseHelper DBHelper; 
private SQLiteDatabase db; 



    public saveData(Context ctx) 
    { 
     this.context = ctx; 
     DBHelper = new DatabaseHelper(context); 
    } 
    private static class DatabaseHelper extends SQLiteOpenHelper 
    { 
     DatabaseHelper(Context context) 
     { 
      super(context, DATABASE_NAME, null, DATABASE_VERSION); 
     } 

     @Override 
     public void onCreate(SQLiteDatabase db) 
     { 
      db.execSQL(DATABASE_CREATE); 
      db.execSQL(DATABASE_CREATECUS); 
     } 

     @Override 
     public void onUpgrade(SQLiteDatabase db, int oldVersion, 
           int newVersion) 
     { 
      Log.w(TAG, "Upgrading database from version " + oldVersion 
        + " to " 
        + newVersion + ", which will destroy all old data"); 
      db.execSQL("DROP TABLE IF EXISTS titles"); 
      onCreate(db); 
     } 
    }  
public saveData open()throws SQLException 
{ 
    db=DBHelper.getWritableDatabase(); 
    return this; 
} 
public void close() 
{ 
    DBHelper.close(); 
} 

    public long insert(String Date,String CustomerName,String Amount,String Banks) { 
    // TODO Auto-generated method stub 
    ContentValues cv=new ContentValues(); 
    cv.put(KEY_DATE,Date); 
    cv.put(KEY_NAME,CustomerName); 
    cv.put(KEY_AMOUNT,Amount); 
    cv.put(KEY_BANK,Banks); 
    return db.insert(DATABASE_TABLE, null,cv); 
} 
    public long insertForm(String BusinessName ,String Address ,String ContactPerson) { 
     // TODO Auto-generated method stub 
     ContentValues cv=new ContentValues(); 
     cv.put(KEY_BUSNAME,BusinessName); 
     cv.put(KEY_ADD,Address); 
     cv.put(KEY_CPERSON,ContactPerson); 
    } 
    public Cursor getlatlng() 
    { 
     Cursor latlngCursor = db.rawQuery("select * from " + DATABASE_TABLE,null); 
     if (latlngCursor != null) 
     { 
      latlngCursor.moveToFirst(); 
     } 
     db.close(); 
     return latlngCursor; 
    } 
    public Cursor order() 
    { 
     Cursor latlngCursor = db.rawQuery("select * from " + DATABASE_TABLE2,null); 
     if (latlngCursor != null) 
     { 
      latlngCursor.moveToFirst(); 
     } 
     db.close(); 
     return latlngCursor; 
    } 
} 

오류 코드 = 1 이러한 테이블하지

+1

하나의'execSQL' 명령에서 2 개의 명령문 (";"로 구분)을 실행하지 마십시오. SQLlite는이 명령을 통한 배치 실행을 지원하지 않습니다. 첫 번째 명령문을 실행하고 오류없이 중지합니다. –

답변

8
use below two class 

package Your 'packagename'; 


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


public class DBHelper extends SQLiteOpenHelper { 
    private static final String DATABASE_NAME = "BistroDB"; 

    private static final int DATABASE_VERSION =1; 

    // Database creation sql statement 
    public static final String Table1= "create table table1name ("Your cloumns");"; 


    public static final String Table2 = "create table table2name ("Your cloumns");"; 




    public DBHelper(Context context) { 
     super(context, DATABASE_NAME, null, DATABASE_VERSION); 
    } 

    // Method is called during creation of the database 
    @Override 
    public void onCreate(SQLiteDatabase database) { 
     database.execSQL(table1); 
     database.execSQL(table2); 

    } 

    // Method is called during an upgrade of the database, e.g. if you increase 
    // the database version 
    @Override 
    public void onUpgrade(SQLiteDatabase database, int oldVersion, 
      int newVersion) { 
     Log.w(DBHelper.class.getName(), 
       "Upgrading database from version " + oldVersion + " to " 
         + newVersion + ", which will destroy all old data"); 
     database.execSQL("DROP TABLE IF EXISTS table1"); 
     database.execSQL("DROP TABLE IF EXISTS table2"); 

     onCreate(database); 
    } 


     public boolean deleteDatabase(Context context) { 
      return context.deleteDatabase(DATABASE_NAME); 
     } 

} 

를 사용하여 값을 삽입하는 클래스 아래 DATABASE_CREATECUS의 끝 테이블로

package 'Your package name'; 



    import android.content.ContentValues; 
    import android.content.Context; 
    import android.database.Cursor; 
    import android.database.SQLException; 
    import android.database.sqlite.SQLiteDatabase; 

    public class DataBaseAdapter { 

     // Database fields 

     private Context context; 
     private SQLiteDatabase database; 
     private DBHelper dbHelper; 

     public DataBaseAdapter(Context context) { 
      this.context = context; 
     } 

     public DataBaseAdapter open() throws SQLException { 
      dbHelper = new DBHelper(context); 
      database = dbHelper.getWritableDatabase(); 
      return this; 
     } 

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


     public Cursor fetchAllTAble1data() { 
      return database.query("MenuData", new String[] { "id", "Title", 
        "Image", "Description" }, null, null, null, null, null); 
     } 

     public Cursor fetchAllTable2data() { 
      return database.query("RestaurantsData", new String[] { 
        "restaurant_id", "name", "phone", "email", "open_days", 
        "timing", "website", "loc_name", "street", "city", "longitude", 
        "latitude", "zip" }, null, null, null, null, null); 
     } 

     public void deleteTable(String tablename){ 
      database.execSQL("drop table if exists "+tablename+';'); 
     } 
     public void createIndividualTable(String query){ 
      database.execSQL(query); 
     } 


     public void InsertTable1Data(TAble1 review) { 
      ContentValues values = new ContentValues(); 
      values.put("Name", review.Name); 
      values.put("Email", review.Email); 
      values.put("Comment", review.Comment); 
      values.put("Rating", review.Rating); 

      database.insert("ReviewsData", null, values); 

     } 

     public void InsertTable2Data(TAble2 photos) { 
      ContentValues values = new ContentValues(); 
      values.put("photo", photos.Photos); 

      database.insert("PhotosData", null, values); 

     } 



     public ContentValues createContentValues(String category, String summary, 
       String description) { 
      ContentValues values = new ContentValues(); 

      return values; 
     } 
    } 
+0

변경 사항은 무엇입니까? –

0

제거보십시오 ","

+0

내가 어디 DATABASE_CREATECUS 제거해야합니다 – Mercy

+0

개인 정적 최종 문자열 DATABASE_CREATECUS = "_id 정수 기본 키 autoincrement,""BusinessName 텍스트가 null이 아닌"+ "주소 텍스트가 null이 아닌"+ "연락처 사용자 텍스트가 없습니다. null, "+"PhoneNumber 텍스트가 null이 아닙니다. >>>>>, <<<<<); "; 마지막 쉼표를 제거해야합니다. –

관련 문제