2013-02-17 151 views
1

嗨人們正在製作一個簡單的應用程序,其中生病插入兩個帳戶手動到登錄身份驗證表,然後生病後做一些基於帳戶類型的工作。我在設置Sqlite函數時遇到問題。我有一個包com.example.emp_management,我有2個類MainActivity.java和Database_Wrap.java。Android Sqlite數據庫設置問題

package com.example.emp_management; 


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

public class Database_Wrap   //hotornot 
{ 
public static final String Database_name = "Employee_Managament_System"; 
public Sql_Lite_Work OurHelper; 
public final Context OurContext; 
public SQLiteDatabase ourDatabase; 

public static class Sql_Lite_Work extends SQLiteOpenHelper 
{ //dbhelper = sql_lite_work 

    public Sql_Lite_Work(Context context) 
    { 
     super(context,Database_name , null, 1); 
     // TODO Auto-generated constructor stub 
    } 
    @Override 
    public void onCreate(SQLiteDatabase db) 
    { 
     // TODO Auto-generated method stub 

     db.execSQL("CREATE TABLE" + "Login_Authentication"+ "(" + 
       "ID" + "INTEGER PRIMARY KEY AUTOINCREMENT, " + 
       "UserName" + "TEXT NOT NULL," + 
       "Password" + "TEXT NOT NULL);"     
       ); 

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

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


} 
public Database_Wrap(Context c) 
{ 
    OurContext = c; 
} 
public Database_Wrap Open() 
{ 
    OurHelper = new Sql_Lite_Work(OurContext); 
    ourDatabase = OurHelper.getWritableDatabase(); 
    return this; 
} 
public void close() 
{ 
    OurHelper.close(); 
} 
} 

現在,未來我想要做的事情是在我的mainactivity我想要做這樣的事情:爲Database_Wrap.java代碼下面給出

Database_Wrap entry= new Database_Wrap(MainActivity.this); 

,然後存取權限寫在Database_Wrap功能打開數據庫並將值寫入管理員和其他用戶的表中:

entry.Open(); 

但在eclipse中無法訪問打開的入口函數。我不知道這裏出了什麼問題。我是一個開始。可能會忘記一些東西。請看看謝謝!

+0

重點是當我寫入條目。我在eclipse中沒有任何東西,所以.Open或.open在這裏不是重點:) – Alfred 2013-02-17 15:20:48

+1

Java中的@GreenGuerilla方法從小寫(Java約定)開始。 – m0skit0 2013-02-17 15:28:45

回答

0

我只是把你的代碼放到一個小測試項目中。它編譯得很好。然後,我在同一個項目的一個活動中添加了此代碼:

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    Database_Wrap entry= new Database_Wrap(MainActivity.this); 
    entry.Open(); 
} 

這樣也行得通。

從代碼的外觀來判斷(沒有什麼不對,只是風格讓有經驗的Java開發者畏縮),你是Java新手;可能也是日食。 Eclipse很奇怪,並且一直都在做些時髦的事情。也許你剛剛遇到一些短期的異常情況。

1

Java區分大小寫。嘗試:

Database_Wrap entry= new Database_Wrap(MainActivity.this); 

無論您w S IN Wrap是小寫。

+0

我有正確的我的問題,你指出的東西已經在我的代碼中處理。還有一些其他的東西是無法辨認的 – Alfred 2013-02-17 15:41:41

+0

@Alfred在eclipse中的問題標籤下查看更準確的錯誤信息 – 2013-02-17 15:47:11