1

嘿伙计们正在制作一个简单的应用程序,其中将两个帐户手动插入表中以进行登录身份验证,然后根据帐户类型进行一些工作。在设置 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 中,我无法在进入时访问打开功能。我不知道这里有什么问题。我是初学者。可能是我忘记了什么。请看一下谢谢!

4

2 回答 2

1

Java 区分大小写。尝试:

Database_Wrap entry= new Database_Wrap(MainActivity.this);

你的两个wsWrap都是小写的。

于 2013-02-17T15:25:26.910 回答
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 很奇怪,并且一直在做一些时髦的事情。也许您刚刚遇到了一些短期异常。

于 2013-02-17T17:12:29.337 回答