import ....
static String dbtableSQL = "CREATE TABLE mytable ( _id integer primary key not null,"
package com.sqltest;
import ...
public class MainActivity extends Activity {
EditText etname, etsex, etaddr;
TextView show;
SQLiteDatabase dbwr;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
etname = (EditText) findViewById(R.id.editText1);
etsex = (EditText) findViewById(R.id.editText2);
etaddr = (EditText) findViewById(R.id.editText3);
show = (TextView) findViewById(R.id.textView4);
/*建立繼承SQLiteOpenHelper之類別物件,主要用來建構
出用於修改資料之SQLiteDatabase類別物件*/
Mydbhelper helper = new Mydbhelper(this);
dbwr = helper.getWritableDatabase();
Toast.makeText(this, "建立資料庫成功", 3000).show();
}
//記得結束資料串流,避免資料遺失
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
dbwr.close();
}
//修改
public void renewbut(View v) {
if (!etname.getText().toString().equals("")
&& !etaddr.getText().toString().equals("")) {
//ContentValues物件用來攜帶資料進資料表裡
ContentValues cv = new ContentValues();
//ContentValues.put("資料庫欄位",value)
cv.put("addr", etaddr.getText().toString());
//更新資料使用內建的API,SQLiteDatabase相關資料庫操作都會回傳一個long,可用來判斷是否有操作成功
//update(String table, ContentValues values, String whereClause, String[]
whereArgs)
//whereClause 對應到SQL語法: name='XXX',SQL是用單引號
long check = dbwr.update("mytable", cv, "name='"
+ etname.getText().toString() + "'", null);
if (check > 0)
Toast.makeText(this, "修改成功", 3000).show();
else
Toast.makeText(this, "修改失敗", 3000).show();
} else {
Toast.makeText(this, "清輸入姓名以及地址", 3000).show();
}
}
//刪除
public void delbut(View v) {
if (!etname.getText().toString().equals("")) {
long check = dbwr.delete("mytable", "name='"
+ etname.getText().toString() + "'", null);
if (check > 0) {
Toast.makeText(this, "刪除成功", 3000).show();
} else {
Toast.makeText(this, "刪除失敗", 3000).show();
}
} else {
Toast.makeText(this, "請輸入刪除資料之姓名", 3000).show();
}
}
//新增
public void newbut(View v) {
ContentValues cv = new ContentValues();
cv.put("name", etname.getText().toString());
cv.put("sex", etsex.getText().toString());
cv.put("addr", etaddr.getText().toString());
long check = dbwr.insert("mytable", null, cv);
if (check > 0) {
Toast.makeText(this, cv.toString() + "新增成功", Toast.LENGTH_SHORT)
.show();
} else {
Toast.makeText(this, "新增失敗", Toast.LENGTH_SHORT).show();
}
}
//查詢
public void querybut(View v) {
if (!etname.getText().toString().equals("")) {
//宣告一個Cursor變數,類似ResultSet,像是一個從資料表中得到的資料表單
Cursor c = null;
//Cursor表單中,擁有的欄位,必須與原資料表欄位名稱符合
String[] colum = { "name", "sex", "addr" };
c = dbwr.query("mytable", colum, "name='"
+ etname.getText().toString() + "'", null, null, null, null);
//針對Cursor變數進行操作,用迴圈將裡面的資料提領出來
if (c.getCount() > 0) {
String st1 = "";
//移動到第一筆
c.moveToFirst();
for (int i = 0; i < c.getCount(); i++) {
st1 = ("姓名: " + c.getString(0) + "性別: " + c.getString(1)
+ "地址: " + c.getString(2) + "\n");
//移動到下一筆
c.moveToNext();
}
show.setText(st1);
Toast.makeText(this, "共有" + c.getCount() + "筆紀錄", 3000).show();
} else {
Toast.makeText(this, "沒有資料...", 3000).show();
}
} else {
Toast.makeText(this, "請輸入欲查詢之姓名", 3000).show();
}
}
//展示
public void showbut(View v) {
Cursor c = null;
String[] colum = { "name", "sex", "addr" };
c = dbwr.query("mytable", colum, null, null, null, null, null);
if (c.getCount() > 0) {
String st1 = "";
c.moveToFirst();
for (int i = 0; i < c.getCount(); i++) {
st1 += ("姓名: " + c.getString(0) + "性別: " + c.getString(1)
+ "地址: " + c.getString(2) + "\n");
c.moveToNext();
}
show.setText(st1);
Toast.makeText(this, "共有" + c.getCount() + "筆紀錄", 3000).show();
} else {
Toast.makeText(this, "沒有資料...", 3000).show();
}
}
}