Android Sqlite数据库设置问题

时间:2013-02-17 14:39:36

标签: android eclipse android-sqlite

Hey Folks正在制作一个简单的应用程序,其中将两个帐户手动插入表中以进行登录验证,然后根据帐户类型进行一些工作。我在设置Sqlite功能时遇到问题。我有一个包com.example.emp_management,其中有2个类MainActivity.java和Database_Wrap.java。 Database_Wrap.java的代码如下:

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();
}
}

现在接下来我要做的就是在我的主要活动中,我想做一些像:

Database_Wrap entry= new Database_Wrap(MainActivity.this);

然后访问Database_Wrap中编写的函数以打开数据库并将值写入表中以供管理员和其他用户使用:

entry.Open();

但是在eclipse中我无法在进入时访问open函数。我知道这里有什么问题。我是个初学者。可能是忘了什么。请你好好看看!

2 个答案:

答案 0 :(得分:1)

Java区分大小写。尝试:

Database_Wrap entry= new Database_Wrap(MainActivity.this);

w Wrap中的{{1}}均为小写。

答案 1 :(得分:0)

我只是将您的代码放入一个小型测试项目中。它编译得很好。然后我在同一项目的一个Activity中添加了这段代码:

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很奇怪,并且一直都很时髦。也许你刚刚遇到了一些短期的异常现象。