проблема базы данных Android - PullRequest
2 голосов
/ 08 апреля 2011

Когда я вызываю мою уже созданную базу данных в SQ lite. Она дает исключение времени выполнения, что база данных вызывает рекурсивно. Но каждый раз, когда использование базы данных заканчивается, я закрываю ее.что с ним не так? Я использую Eclipse и разрабатываю программу на Android.

я создаю объект вспомогательного класса (в котором я создал базу данных)., а затем использую SQliteDatabase db=hc.getWritebleDatabase(); Исключение находится вВыше строки

hc=helperclass object

ответьте мне ... потому что в Google я не получил никакого связанного ответа.

код получил исключение ::: У меня уже есть класс базы данных с именем HelperClass .itsимел таблицу с именем New_User

public void check_pass()
{
boolean flag=true;
private HelperClass hc = new HelperClass(this);
SQLiteDatabase db;  
try{ db=hc.getWritableDatabase();}

catch(Exception ex)
         {
             Toast.makeText(this,""+ex.getMessage(),Toast.LENGTH_SHORT).show();
         }
    cur=db.query("New_User",null,null,null,null,null,null);
    cur.moveToFirst();
  do{
   if(cur.getString(0).equalsIgnoreCase(edittext_name.getText().toString())&&cur.getString(3).equals(edittext_pass.getText().toString())){
    flag=false;

    //dialog = ProgressDialog.show(MainActivity.this,"","Please wait for few seconds...", true);
    //dialog.setCancelable(true); 
    //dialog.show();
    Intent intent1=new Intent(this,Friends.class);
    startActivity(intent1);
     }
  cur.moveToNext();
   }  while(cur.moveToNext());
    if(flag==true){
       Toast.makeText(this,"Incorecct user name or password",Toast.LENGTH_SHORT).show();   
    }

база данных Создание:

public class HelperClass extends SQLiteOpenHelper {
    public final static String Db_name="employee.db";
    protected final static int Db_version=1;
    protected final static String Ename="Ename";
    protected final static String Email="Email";
    protected final static String Epass="Epass";
    protected final static String Eabout="Eabout";
    protected final static String Egender="Egender";
    protected final static String Ehob1="Ehob1";
    protected final static String Ehob2="Ehob2";
    protected final static String Ehob3="Ehob3";
    protected final static String Ehob4="Ehob4";


    public HelperClass(Context context){   
    super(context,Db_name,null,Db_version);
    }

    public void onCreate(SQLiteDatabase db1){
        db1=this.getWritableDatabase();
        String sql= "CREATE TABLE New_User("+Ename +" text not null," +
        ""+ Egender +" text not null," +
        ""+ Email +" text not null primary key," +
        "" +Epass+" text not null,"+
        ""+ Eabout +" text not null,"+
        ""+ Ehob1 +" text,"+ Ehob2 +" text,"+ Ehob3 +" text,"+ Ehob4 +" text);";
       db1.execSQL(sql);

    }

Ответы [ 2 ]

2 голосов
/ 19 апреля 2011

Удалить эту строку:

db1=this.getWritableDatabase();

Таким образом, метод onCreate вашей базы данных должен быть:

public void onCreate(SQLiteDatabase db1){
    String sql= "CREATE TABLE New_User("+Ename +" text not null," +
    ""+ Egender +" text not null," +
    ""+ Email +" text not null primary key," +
    "" +Epass+" text not null,"+
    ""+ Eabout +" text not null,"+
    ""+ Ehob1 +" text,"+ Ehob2 +" text,"+ Ehob3 +" text,"+ Ehob4 +" text);";
   db1.execSQL(sql);
}
0 голосов
/ 30 июля 2011

Закрыть после использования объекта базы данных более * строгий текст * SQLiteDataBase.close ();

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...