アンドロイドスタジオでテーブルを作成しようとしていて、ADBツールに行ってSQLite3に行ったときにデータベースに入ることができますが、.tables
をコマンドラインに何も表示されません。ここに私のデータベースを作成するためのコードとそれはテーブルです。SQLiteで作成したテーブルが表示されません
public class DatabaseOperations extends SQLiteOpenHelper
{
public static final String NAME = "event_name";
public static final String LOCATION = "event_location";
public static final String DATE = "event_date";
public static final String TIME = "event_time";
public static final String DATABASE_NAME = "events_stuff.db";
public static final String TABLE_NAME = "events";
public static final int database_version = 7;
public String CREATE_QUERY = "CREATE TABLE " + TABLE_NAME+"(ID INTEGER PRIMARY KEY, "+ NAME + " TEXT,"
+ LOCATION + " TEXT,"+DATE+" TEXT,"+TIME+" TEXT);";
public DatabaseOperations(Context context)
{
super(context, DATABASE_NAME, null, database_version);
Log.d("Database operations", "Database created");
}
@Override
public void onCreate(SQLiteDatabase sdb)
{
sdb.execSQL(CREATE_QUERY);
Log.d("Database operations", "Table Created");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + DATABASE_NAME);
onCreate(db);
}
public void addProduct(Events e) {
ContentValues values = new ContentValues();
values.put(NAME, e.get_eventname());
values.put(LOCATION, e.get_eventloc());
values.put(DATE, e.get_eventdate());
values.put(TIME, e.get_eventdate());
SQLiteDatabase db = this.getWritableDatabase();
db.insert(TABLE_NAME, null, values);
db.close();
}
}
その後、私のフラグメントに...私はこのようなテーブルに情報を挿入してみてください。
public static EditText eventName;
public static EditText eventLoc;
public static EditText eventDate;
public static EditText eventTime;
public static DatabaseOperations mDBHelper;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
mDBHelper = new DatabaseOperations(getActivity().getApplicationContext());
mDBHelper.getWritableDatabase();
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId())
{
case R.id.save:
newProduct();
Toast.makeText(getActivity().getApplicationContext(), "YAY YOUR EVENT HAS INSERTED", Toast.LENGTH_LONG).show();
return true;
}
return false;
}
public void newProduct()
{
DatabaseOperations dbHandler = new DatabaseOperations(getActivity().getApplicationContext());
Events events =
new Events(eventName.getText().toString(), eventLoc.getText().toString(), eventDate.getText().toString(), eventTime.getText().toString());
dbHandler.addProduct(events);
}
次のようにまた、私のイベントクラスが定義されています
public class Events
{
private int _id;
private String _eventname;
private String _eventloc;
private String _eventdate;
private String _eventtime;
public Events(){}
public Events(String _eventname, String _eventloc, String _eventdate, String _eventtime)
{
this._eventname = _eventname;
this._eventloc = _eventloc;
this._eventdate = _eventdate;
this._eventtime = _eventtime;
}
public void set_id(int _id)
{
this._id = _id;
}
public void set_eventname(String _eventname)
{
this._eventname = _eventname;
}
public void set_eventloc(String _eventloc)
{
this._eventloc = _eventloc;
}
public void set_eventdate(String _eventdate)
{
this._eventdate = _eventdate;
}
public void set_eventtime(String _eventtime)
{
this._eventtime = _eventtime;
}
public int get_id()
{
return _id;
}
public String get_eventname()
{
return _eventname;
}
public String get_eventloc()
{
return _eventloc;
}
public String get_eventdate()
{
return _eventdate;
}
public String get_eventtime()
{
return _eventtime;
}
}
私がしようとすると私のデータを挿入すると動作していると言われますが、コマンドラインに入ってもテーブルが表示されません。テーブルを作成するにはどうすればいいですか?既にテーブルが作成されていれば、その情報をどこで見ることができますか?私は多くのyoutubeのビデオとstackoverflowの投稿を梳き、それらのどれも働いていません。
ありがとうございます! ; newProduct()
後フラグメント中
public Cursor getAllRows() {
SQLiteDatabase db = getWritableDatabase();
return db.query(TABLE_NAME,null,null,null,null,null,null);
}
2) - :DatabaseOperationsで
をコーディングする代わりに
"Row=" + csr.getString(1)
の方が良いでしょうか? – Peterdk私のテーブルが作成されたかどうかを確認するには....私はadbコマンドを入力しました:/sdcard/events_stuff.dbを入力してから:sqlite3 events_stuff.db –
'public static EditText'ああ男の子、メモリリークが多い – EpicPandaForce