数据库未创建

时间:2012-09-28 06:03:22

标签: android android-sqlite

我正在尝试将已解析的数据存储在我的应用程序中,但即使我已初始化该类,也不会创建数据库。这是我的代码:

public class Schedule extends ListActivity{
    // Flag for Internet connection status
    Boolean isInternetPresent = false;

    // Alert Dialog Manager
    AlertDialogManager alert = new AlertDialogManager();

    ConnectionDetector cd;

    // All static variables
    static final String URL = "url address";

    // XML node keys
    static final String KEY_ITEM = "group_header"; // Parent node
    static final String KEY_NAME = "name"; //Group Number
    static final String KEY_SUNM = "day_sun_mrg";
    static final String KEY_SUNE = "day_sun_evn";
    static final String KEY_MONM = "day_mon_mrg";
    static final String KEY_MONE = "day_mon_evn";
    static final String KEY_TUEM = "day_tue_mrg";
    static final String KEY_TUEE = "day_tue_evn";
    static final String KEY_WEDM = "day_wed_mrg";
    static final String KEY_WEDE = "day_wed_evn";
    static final String KEY_THUM = "day_thu_mrg";
    static final String KEY_THUE = "day_thu_evn";
    static final String KEY_FRIM = "day_fri_mrg";
    static final String KEY_FRIE = "day_fri_evn";
    static final String KEY_SATM = "day_sat_mrg";
    static final String KEY_SATE = "day_sat_evn";

    public static ArrayList<HashMap<String, String>> menuItems = new ArrayList<HashMap<String, String>>();

    // Creating new HashMap
    HashMap<String, String> map = new HashMap<String, String>();


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //Calling SQlite Process
        DBAdapter dbc=new DBAdapter(this); //Here I am doing my class call

        XMLParser parser = new XMLParser();
        String xml = parser.getXmlFromUrl(URL); // Getting XML
        Document doc = parser.getDomElement(xml); // Getting DOM element

        cd = new ConnectionDetector(getApplicationContext());

         // Check if Internet present
        isInternetPresent = cd.isOnline();
        if (!isInternetPresent) {
            // Internet Connection is not present
            alert.showAlertDialog(Schedule.this, "Internet Connection Error",
                    "Please connect to working Internet connection", false);
            // stop executing code by return
            return;
        }
        else {
            NodeList nl = doc.getElementsByTagName(KEY_ITEM);
            // Looping through all item nodes <item>
            for (int i = 0; i < nl.getLength(); i++) {
                Element e = (Element) nl.item(i);
                // Adding each child node to HashMap key => value

                map.put(KEY_NAME, parser.getValue(e,KEY_NAME));
                map.put(KEY_SUNM,parser.getValue(e, KEY_SUNM));
                map.put(KEY_SUNE, parser.getValue(e,KEY_SUNE));
                map.put(KEY_MONM,parser.getValue(e, KEY_MONM));
                map.put(KEY_MONE, parser.getValue(e,KEY_MONE));
                map.put(KEY_TUEM,parser.getValue(e, KEY_TUEM));
                map.put(KEY_TUEE, parser.getValue(e,KEY_TUEE));
                map.put(KEY_WEDM,parser.getValue(e, KEY_WEDM));
                map.put(KEY_WEDE, parser.getValue(e,KEY_WEDE));
                map.put(KEY_THUM,parser.getValue(e, KEY_THUM));
                map.put(KEY_THUE, parser.getValue(e,KEY_THUE));
                map.put(KEY_FRIM,parser.getValue(e, KEY_FRIM));
                map.put(KEY_FRIE, parser.getValue(e,KEY_FRIE));
                map.put(KEY_SATM,parser.getValue(e, KEY_SATM));
                map.put(KEY_SATE, parser.getValue(e,KEY_SATE));

                // Adding HashList to ArrayList
                menuItems.add(map);
            }
        }
    }
}

这是我的DatabaseActivity Class

public class DBAdapter{
    // Contacts Table Columns names
     public static final String KEY_ROWID = "_id";
    private static final String KEY_NAME = "group_id";
    private static final String KEY_SUNM = "day_sun_mrg";
    private static final String KEY_SUNE = "day_sun_evn";
    private static final String KEY_MONM = "day_mon_mrg";
    private static final String KEY_MONE = "day_mon_evn";
    private static final String KEY_TUEM = "day_tue_mrg";
    private static final String KEY_TUEE = "day_tue_evn";
    private static final String KEY_WEDM = "day_wed_mrg";
    private static final String KEY_WEDE = "day_wed_evn";
    private static final String KEY_THUM = "day_thu_mrg";
    private static final String KEY_THUE = "day_thu_evn";
    private static final String KEY_FRIM = "day_fri_mrg";
    private static final String KEY_FRIE = "day_fri_evn";
    private static final String KEY_SATM = "day_sat_mrg";
    private static final String KEY_SATE = "day_sat_evn";

    private static final String TAG = "DBAdapter";

    // Database Name
    private static final String DATABASE_NAME = "name";

    // Contacts table name
    private static final String DATABASE_TABLE= "schedule";


    // Database Version
    private static final int DATABASE_VERSION = 1;

    private static final String DATABASE_CREATE ="create table schedules (_id integer primary key autoincrement,group_id text,day_sun_mrg text ,day_sun_evn text ,day_mon_mrg text,day_mon_evn text ,day_tue_mrg text,day_tue_evn text,day_wed_mrg text ,day_wed_evn text ,day_thu_mrg text,day_thu_evn text ,day_fri_mrg text ,day_fri_evn text ,day_sat_mrg text,day_sat_evn text )";


    private final Context context;

    private DatabaseHelper DBHelper;
    private SQLiteDatabase db;

    public DBAdapter(Context ctx)
    {
         this.context = ctx;
         DBHelper = new DatabaseHelper(context);
    }


    private static class DatabaseHelper extends SQLiteOpenHelper
    {
        private static final String TAG = null;

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

        // Creating Tables

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

        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion,
        int newVersion)
        {
            Log.e(TAG, "Upgrading database from version " + oldVersion
                    + " to "
                    + newVersion + ", which will destroy all old data");
            db.execSQL("DROP TABLE IF EXISTS titles");
            onCreate(db);
        }
    }

    //---Opens the database---
    public DBAdapter open() throws SQLException
    {
        db = DBHelper.getWritableDatabase();
        return this;
    }

    //---closes the database---
    public void close()
    {
        DBHelper.close();
    }


    public void insertintoDatabase( String sunm) {
        // TODO Auto-generated method stub
        ContentValues values = new ContentValues();

        values.put(KEY_SUNM, sunm); //Sunday Morning

        db.insert(DATABASE_TABLE, null, values);
    }


    //---Deletes a particular title---
     public boolean deleteTitle(long group)
     {
         return db.delete(DATABASE_TABLE, KEY_NAME +
                 "=" + group, null) > 0;
     }

     //---Retrieves all the titles---
     public Cursor getAllTitles()
     {
         return db.query(DATABASE_TABLE, new String[] {
                 KEY_NAME,
                   KEY_SUNE,
                   KEY_SUNM,
                   KEY_SUNE,KEY_MONM,KEY_MONE,KEY_TUEM,
                   KEY_TUEE,KEY_WEDM,KEY_WEDE,KEY_THUM,
                   KEY_THUE,KEY_FRIM,KEY_FRIE,KEY_SATM,KEY_SATE},
                 null,
                 null,
                 null,
                 null,
                 null);
     }

     //---Retrieves a particular title---
     public Cursor getTitle(long group) throws SQLException
     {
         Cursor mCursor =
                 db.query(true, DATABASE_TABLE, new String[] {
                         KEY_NAME,
                          KEY_SUNE,
                          KEY_SUNM,
                          KEY_SUNE,KEY_MONM,KEY_MONE,KEY_TUEM,
                          KEY_TUEE,KEY_WEDM,KEY_WEDE,KEY_THUM,
                          KEY_THUE,KEY_FRIM,KEY_FRIE,KEY_SATM,KEY_SATE
                         },
                         KEY_NAME + "=" + group,
                         null,
                         null,
                         null,
                         null,
                         null);
         if (mCursor != null) {
             mCursor.moveToFirst();
         }
         return mCursor;
         }

     //---Updates a title---
     public boolean updateTitle(long group, String sunm, String sune, String monm,
              String mone, String tuem, String tuee, String wedm, String wede,
              String thum, String thue, String frim, String frie, String satm,
              String sate)
     {
         ContentValues args = new ContentValues();
         args.put(KEY_NAME,group); // Group number
         args.put(KEY_SUNM, sunm); // Sunday morning
         args.put(KEY_SUNM, sune); // Sunday evening
         args.put(KEY_MONM, monm);
         args.put(KEY_MONE, mone);
         args.put(KEY_TUEM, tuem);
         args.put(KEY_TUEE, tuem);
         args.put(KEY_WEDM, wedm);
         args.put(KEY_WEDE, wede);
         args.put(KEY_THUM, thum);
         args.put(KEY_THUE, thue);
         args.put(KEY_FRIM, frim);
         args.put(KEY_FRIE, frie);
         args.put(KEY_SATM, satm);
         args.put(KEY_SATE, sate);
         return db.update(DATABASE_TABLE, args,
                          KEY_NAME + "=" + group, null) > 0;
    }


    public long insertData(String sunm, String sune, String monm, String mone,
            String tuem, String tuee, String wedm, String wede, String thum,
            String thue, String frim, String frie, String satm, String sate,
            String string) {
        // TODO Auto-generated method stub

         ContentValues initialValues = new ContentValues();
         //initialValues.put(KEY_NAME,group); // Group number
         initialValues.put(KEY_SUNM, sunm); //Sunday morning
         initialValues.put(KEY_SUNM, sune);// Sunday evening
         initialValues.put(KEY_MONM, monm);
         initialValues.put(KEY_MONE, mone);
         initialValues.put(KEY_TUEM, tuem);
         initialValues.put(KEY_TUEE, tuem);
         initialValues.put(KEY_WEDM, wedm);
         initialValues.put(KEY_WEDE, wede);
         initialValues.put(KEY_THUM, thum);
         initialValues.put(KEY_THUE, thue);
         initialValues.put(KEY_FRIM, frim);
         initialValues.put(KEY_FRIE, frie);
         initialValues.put(KEY_SATM, satm);
         initialValues.put(KEY_SATE, sate);
         return db.insert(DATABASE_TABLE, null, initialValues);
    }
}

2 个答案:

答案 0 :(得分:2)

您在create语句末尾缺少分号。因此它永远不会被执行和创建。看看这个:

DATABASE_CREATE ="create table schedules (_id integer primary key autoincrement,group_id text,day_sun_mrg text ,day_sun_evn text ,day_mon_mrg text,day_mon_evn text ,day_tue_mrg text,day_tue_evn text,day_wed_mrg text ,day_wed_evn text ,day_thu_mrg text,day_thu_evn text ,day_fri_mrg text ,day_fri_evn text ,day_sat_mrg text,day_sat_evn text )";

您需要在最后一个括号后添加分号;。将其更改为:

DATABASE_CREATE ="create table schedules (_id integer primary key autoincrement,group_id text,day_sun_mrg text ,day_sun_evn text ,day_mon_mrg text,day_mon_evn text ,day_tue_mrg text,day_tue_evn text,day_wed_mrg text ,day_wed_evn text ,day_thu_mrg text,day_thu_evn text ,day_fri_mrg text ,day_fri_evn text ,day_sat_mrg text,day_sat_evn text );";

答案 1 :(得分:0)

感谢@Marcin帮助我,但我在尝试时找到了答案。我做了:

DBAdapter dba;
dba = new DBAdapter(this);
try {
    dba.open();
} catch (SQLException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
}

它帮助了我。我不知道它是否会对你有所帮助。