2011-04-08 42 views
2

当我打电话SQ lite.It的我已经创建数据的基础上给予运行时异常数据的基础是每个数据库使用超过我关闭了它的时间打电话recursively.but。 这是什么问题呢?我正在使用eclipse和在android中开发程序。使用SQliteDatabase db=hc.getWritebleDatabase(); 异常一个Android数据库问题

我创建辅助类的对象(我在其中创建的数据库)。而然后 是在上面的行上谷歌

hc=helperclass object 

答案me..because我没有”没有得到任何相关的答案。

代码变得异常::: 我已经叫助手类数据的基础类。其曾表命名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); 

    } 
+0

您可以发布logcat提供的异常详细信息以及发生异常的方法吗? – 2011-04-08 04:59:13

+0

04-12 17:04:55.009:DEBUG/SntpClient(59):请求时间失败:java.net.SocketException异常:不支持地址家族协议 这是异常在我的日志猫显示 – Sameer 2011-04-12 11:41:09

+0

PLZ先生科瑞Sunwold回答我如果您有关于此的想法 – Sameer 2011-04-13 04:30:27

回答

2

删除此行:

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

yes..this是problem..i通过检查again.Thank你乌拉圭回合的支持得到了解决太 – Sameer 2011-04-21 05:17:39

+0

如果可能的话,请要么张贴您的解决方案,并将其标记为答案,或标记此为答案是否能解决您的问题。 SO不喜欢有很多“未回答”的问题。 – 2011-04-21 19:14:23

0

使用数据的基础上的对象后关闭超过 * 强文本 * SQLiteDataBase.close();