package com.demo.android.SQLiteA;
import android.app.Activity;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class SQLiteAActivity extends Activity {
static String TABLE_NAME = "Users"; //表格名稱
static String NAME = "name"; //姓名
static String ADDRESS = "address"; //住址
static String PHONE = "phone"; //電話
DBConnection dbconn;
/** Called when the activity is first created. */
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView show=(TextView)findViewById(R.id.show);
//insert Button
OnClickListener OnInsertClick = null;
dbconn = new DBConnection(this);
//取得可寫入的資料庫
SQLiteDatabase db = dbconn.getWritableDatabase();
//查詢資料表
Cursor c = db.query(TABLE_NAME, new String[] {NAME,PHONE,ADDRESS}, null, null, null, null, null);
//移至第一筆資料
c.moveToFirst();
//如果資料筆數大於0 才讀取資料
if(c.getCount()> 0)
show.setText("name="+c.getString(0)+",phone="+c.getString(1)+",address="+c.getString(2));
c.close();
//設定Onclick函數
OnInsertClick=new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//ContentValues 是負責儲存一對值,但是它儲存的一個是String類型,其他是基本類型
ContentValues values = new ContentValues();
values.put(NAME, ((EditText)findViewById( R.id.username)).getText().toString());
values.put(PHONE, "0912345678");
values.put(ADDRESS, "TAIWAN");
//執行寫入資料庫
SQLiteDatabase db = dbconn.getWritableDatabase();
db.insert(TABLE_NAME, null, values);
db.close();
onCreate(savedInstanceState);
}
};
Button insertBtn=(Button)findViewById(R.id.insert);
//建立insertBtnOnclick事件
insertBtn.setOnClickListener(OnInsertClick);
}
//建立資料庫PhoneDB和Table:Users
public static class DBConnection extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "PhoneDB";
private static final int DATABASE_VERSION = 2;
private DBConnection(Context ctx) {
//context=內容物件 DATABASE_NAME=傳入的資料庫名稱 null=複雜查詢時使用 DATABASE_VERSION=資料庫版本
super(ctx, DATABASE_NAME, null, DATABASE_VERSION);
}
public void onCreate(SQLiteDatabase db) {
String sql = "CREATE TABLE " + TABLE_NAME + " ("
+ NAME + " text not null, "
+ PHONE + " text not null, "
+ ADDRESS + " text not null" + ");";
db.execSQL(sql);
}
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
}
}
沒有留言:
張貼留言