2013-02-17 83 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