2013-02-17 1 views
1

Эй, я делаю простое приложение, в котором плохо вставлять две учетные записи вручную в таблицу для аутентификации входа, а затем после этого плохо делайте некоторые работы на основе типа учетных записей. У меня возникают проблемы с настройкой функций Sqlite. У меня есть один пакет com.example.emp_management, и в нем у меня есть 2 класса MainActivity.java и Database_Wrap.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 entry= new Database_Wrap(MainActivity.this); 

, а затем Acces функции, написанные на Database_Wrap открыть базу данных и записывать значения в таблицу для администратора и других пользователей:

entry.Open(); 

но затмение я не в состоянии получить доступ к открытой функции на входе. Я не знаю, что здесь не так. Я начинаю. Может быть, я что-то забыл. Пожалуйста, посмотрите, спасибо!

+0

пункт, когда я пишу запись. я ничего не получаю в eclipse, поэтому OpenOffen или .open здесь не суть :) – Alfred

+1

@GreenGuerilla методы в Java начинаются с нижнего регистра (Java-соглашение). – m0skit0

ответ

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 devs), вы новичок в Java; вероятно, затмение тоже. Eclipse странно и все время фанки. Возможно, вы только что столкнулись с некоторой кратковременной аномалией.

1

Java чувствителен к регистру. Попробуйте:

Database_Wrap entry= new Database_Wrap(MainActivity.this); 

Оба ваши w s в Wrap были в нижнем регистре.

+0

У меня есть правильный вопрос, то, что вы указываете, уже обрабатывается в моем коде. есть что-то еще, что не удалось обнаружить – Alfred

+0

@Alfred Проверить под вкладкой проблем в eclipse для более точного сообщения об ошибке –

Смежные вопросы