2011-04-08 39 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();