2015-09-24 28 views
0

SQLite數據庫沒有被創建,沒有錯誤到來。SQLite數據庫沒有被創建,沒有錯誤到來

我檢查了android/data文件夾嘗試了很多事情。我正在使用eclipse。有人提前幫助我,並感謝。

Database.java文件是這樣的:

public class Database extends SQLiteOpenHelper { 

    public static final String DATABASE_NAME="Table.db"; 
    public static final String TABLE_NAME="table_one"; 
    public static final String COL_1="ID"; 
    public static final String COL_2="NAME"; 
    public static final String COL_3="SURNAME"; 
    public static final String COL_4="MARKS"; 

    public Database(Context context) { 
     super(context, TABLE_NAME, null, 1); 
     // TODO Auto-generated constructor stub 
    } 

    @Override 
    public void onCreate(SQLiteDatabase arg) { 
     // TODO Auto-generated method stub 
     arg.execSQL("create table "+TABLE_NAME+"(ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT, SURNAME TEXT, MARKS INTEGER)"); 
    } 

    @Override 
    public void onUpgrade(SQLiteDatabase arg, int arg1, int arg2) { 
     // TODO Auto-generated method stub 
     arg.execSQL("DROP TABLE IF EXISTS "+TABLE_NAME); 
     onCreate(arg); 
    } 

    public boolean insert(String name, String sname, String marks) 
    { 
     SQLiteDatabase arg=this.getWritableDatabase(); 
     ContentValues content=new ContentValues(); 
     content.put(COL_2, name); 
     content.put(COL_3, sname); 
     content.put(COL_4, marks); 
     long result=arg.insert(TABLE_NAME, null, content); 
     if(result==-1) 
      return false; 
     else 
     return true; 

    } 
} 

MainActivity.java是:

public class MainActivity extends Activity { 

    Database myDb; 
    EditText name, sname, marks; 
    Button add; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     myDb = new Database(this); 
     name = (EditText) findViewById(R.id.ename); 
     sname = (EditText) findViewById(R.id.esname); 
     marks = (EditText) findViewById(R.id.emarks); 
     add = (Button) findViewById(R.id.button1); 
     addData(); 
    } 

    public void addData() { 
     add.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 
       // TODO Auto-generated method stub 
       boolean isInserted = myDb.insert(name.getText().toString(), sname.getText().toString(), marks.getText().toString()); 
       if (isInserted == true) 
        Toast.makeText(MainActivity.this, "Data is inserted", Toast.LENGTH_LONG).show(); 
       else 
        Toast.makeText(MainActivity.this, "Data is NOT inserted", Toast.LENGTH_LONG).show(); 
      } 
     }); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 

} 
+1

留出空間打開支架像'TABLE_NAME +」之前(',它應該是'_id'不'id' – Blackbelt

+0

變化表名數據庫名超(上下文,DATABASE_NAME,空,1)和ref這個http://stackoverflow.com/questions/21881992/when-is-sqliteopenhelper-oncreate-onupgrade-run – arun

+0

我改變它從TABLE_NAME到DATABASE_NAME仍然沒有效果和Blackbelt你可以指定_id和not id-thing請 – Anmol

回答

1
public Database(Context context) 
    { 
     super(context, DATABASE_NAME , null, 1); // Your Mistake 
    } 

這樣創建表:

String CREATE_TABLE = "CREATE TABLE " + GROUP_CHAT_MESSAGE_TABLE_NAME + "(" 
       + ID + " INTEGER PRIMARY KEY," 
       + NAME + " TEXT," 
       + SURNAME + " TEXT ,"         
       + MARKS + " INTEGER" + ")"; 

db.execSQL(CREATE_TABLE); 
+0

仍然無法正常工作,主要是當我點擊添加按鈕時收到消息「Data is inserted」,但是當我進入Android-> Data時,看到沒有文件夾爲我的包裹。 – Anmol

+0

您只能在模擬器中檢查您的數據 – KishuDroid

+0

爲了節省時間,我使用智能手機啓動我的應用程序而不是仿真器。 – Anmol

0

儘量考慮看看here。你應該使用DAO類;所以您可以通過中間對象來管理數據庫中的信息。

嘗試建立這樣的表格:

private static final String DATABASE_CREATE = "create table " 
     + DATABASE_NAME + "(" + COL_1 + 
     " integer primary key autoincrement, " + 
     COL_2 + " text not null, " + COL_3 + " text not null, " + COL_4 + " integer);"; 
相關問題