# SQLiteOpenHelper 1. Define class ```kotlin= class MyDBHelper(context: Context) : SQLiteOpenHelper(context, DBName, null, DBVersion) { companion object{ private const val DBVersion = 1 private const val DBName = "SampleList.db" const val TableName = "MySample" } override fun onCreate(db: SQLiteDatabase?) { val sql:String = "CREATE TABLE IF NOT EXISTS " + TableName + "( " + "id INTEGER PRIMARY KEY AUTOINCREMENT, " + "TITLE VARCHAR(50), " + "CONTENT TEXT" + ");" db?.execSQL(sql) } override fun onUpgrade(db: SQLiteDatabase?, oldVersion: Int, newVersion: Int) { val sql = "DROP TABLE $TableName" db?.execSQL(sql); } } ``` 2. Usage ```kotlin= lateinit var myDBHelper: MyDBHelper override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) myDBHelper = MyDBHelper(this) } override fun onDestroy() { myDBHelper.close() super.onDestroy() } private fun deleteData(){ val db: SQLiteDatabase = myDBHelper.writableDatabase db.execSQL("delete from ${MyDBHelper.TableName}") } private fun addData(value:String){ val db: SQLiteDatabase = myDBHelper.writableDatabase val values = ContentValues() values.put("TITLE", "Title 1") values.put("CONTENT", "$value") val result = db.insert(MyDBHelper.TableName, null, values) Toast.makeText(this,"DB result = $result",Toast.LENGTH_SHORT).show() } private fun getDBData(){ val db: SQLiteDatabase = myDBHelper.readableDatabase var c: Cursor = db.rawQuery("SELECT * FROM ${MyDBHelper.TableName}", null) var str = "" for(row in 0 until c.count){ c.moveToPosition(row) str += "Row : " + (row+1) + " =>\r\n" for(col in 0 until c.columnCount){ val name = c.getColumnName(col) val value = c.getString(col) str += "$name : $value \r\n" } } text.text = str //another way to read // if (c.count > 0) { // 若有資料 // var str = """ // 總共有 ${c.getCount().toString()}筆資料 // // """.trimIndent() // str += "-----\n" // c.moveToFirst() // 移到第 1 筆資料 // do { // 逐筆讀出資料 // str += """ // name:${c.getString(0).toString()} // // """.trimIndent() // str += """ // phone:${c.getString(1).toString()} // // """.trimIndent() // str += """ // email:${c.getString(2).toString()} // // """.trimIndent() // str += "-----\n" // } while (c.moveToNext()) // 有一下筆就繼續迴圈 // text.text = str // } } ```