返回列表 發帖

SQLite

本帖最後由 ray 於 2012-11-26 19:33 編輯

附件: 您需要登錄才可以下載或查看附件。沒有帳號?註冊

  1. package com.example.sqlite;

  2. import android.os.Bundle;
  3. import android.app.Activity;
  4. import android.content.Context;
  5. import android.database.Cursor;
  6. import android.database.sqlite.SQLiteDatabase;
  7. import android.database.sqlite.SQLiteOpenHelper;
  8. import android.database.sqlite.SQLiteStatement;
  9. import android.view.Menu;
  10. import android.view.View;
  11. import android.widget.AdapterView;
  12. import android.widget.AdapterView.OnItemSelectedListener;
  13. import android.widget.ArrayAdapter;
  14. import android.widget.ListView;
  15. import android.widget.Spinner;
  16. import android.widget.TextView;

  17. public class MainActivity extends Activity
  18. {
  19.         private DatabaseHelper helper;
  20.     @Override
  21.     public void onCreate(Bundle savedInstanceState) {
  22.         super.onCreate(savedInstanceState);
  23.         setContentView(R.layout.activity_main);
  24.         helper = new DatabaseHelper(this);
  25.         final SQLiteDatabase db = helper.getReadableDatabase();
  26.         Cursor c = db.query ("StudentsTB", new String[]{"student_no"}, null, null, null, null, null);
  27.         //Cursor c = db.rawQuery(sql, null);
  28.         c.moveToFirst();
  29.         CharSequence[] list = new CharSequence[c.getCount()];
  30.         for(int i = 0; i < list.length; i++)
  31.         {
  32.                 list[i] = c.getString(0);
  33.                 c.moveToNext();
  34.         }
  35.         c.close();
  36.         Spinner spinner = (Spinner)this.findViewById(R.id.Spinner01);
  37.         spinner.setAdapter(new ArrayAdapter<CharSequence>(this,android.R.layout.simple_spinner_item,list));
  38.         spinner.setOnItemSelectedListener(new OnItemSelectedListener()
  39.         {

  40.                         public void onItemSelected(AdapterView<?> parent, View view,
  41.                                         int position, long id) {
  42.                                 // TODO Auto-generated method stub
  43.                                 String student_no = ((Spinner)parent).getSelectedItem().toString();
  44.                                 Cursor c = db.query("StudentsTB", new String[]{"student_name"}, "student_no='"+student_no+"'", null, null, null, null);
  45.                                 c.moveToFirst();
  46.                                 String student_name = c.getString(0);
  47.                                 TextView textView = (TextView)findViewById(R.id.TextView01);
  48.                                 textView.setText(student_name);
  49.                                 c.close();
  50.                                
  51.                                 c = db.query("CoursesTB", new String[]{"course_name"}, "student_no='"+student_no+"'", null, null, null, null);
  52.                                 c.moveToFirst();
  53.                                 CharSequence[] list = new CharSequence[c.getCount()];
  54.                         for(int i = 0; i < list.length; i++)
  55.                         {
  56.                                 list[i] = c.getString(0);
  57.                                 c.moveToNext();
  58.                         }
  59.                         c.close();
  60.                         ArrayAdapter<CharSequence> adapter = new ArrayAdapter<CharSequence>(MainActivity.this,android.R.layout.simple_list_item_1,list);
  61.                         ListView listView = (ListView)findViewById(R.id.ListView01);
  62.                         listView.setAdapter(adapter);
  63.                         }

  64.                         public void onNothingSelected(AdapterView<?> arg0) {
  65.                                 // TODO Auto-generated method stub
  66.                                
  67.                         }
  68.                
  69.         });
  70.     }

  71.     @Override
  72.     public boolean onCreateOptionsMenu(Menu menu) {
  73.         getMenuInflater().inflate(R.menu.activity_main, menu);
  74.         return true;
  75.     }
  76. }

  77. class DatabaseHelper extends SQLiteOpenHelper
  78. {
  79.         private static final String DATABASE_NAME = "StudentDB";
  80.         private static final int DATABASE_VERSION = 1;
  81.        
  82.         private String[][] STUDENTS = {
  83.                         {"A123","Thomas Wang"},
  84.                         {"A135","Tony Huang"},
  85.                         {"A146","Johnny Kao"},
  86.                         {"A158","Mary Liao"}
  87.         };
  88.        
  89.         private String[][] COURSES = {
  90.                         {"A123","Computer Science"},
  91.                         {"A123","English"},
  92.                         {"A123","Mathematic"},
  93.                         {"A123","Chinese"},
  94.                         {"A135","Computer Science"},
  95.                         {"A135","Chinese"},
  96.                         {"A135","Japanese"},
  97.                         {"A135","Mathematic"},
  98.                         {"A146","English"},
  99.                         {"A146","Computer Science"},
  100.                         {"A146","Mathematic"},
  101.                         {"A158","Japanese"},
  102.                         {"A158","France"},
  103.                         {"A158","Chinese"}
  104.         };
  105.        
  106.         public DatabaseHelper(Context context) {
  107.                 super(context, DATABASE_NAME, null, DATABASE_VERSION);
  108.                 // TODO Auto-generated constructor stub
  109.         }

  110.         @Override
  111.         public void onCreate(SQLiteDatabase db)
  112.         {
  113.                 // TODO Auto-generated method stub
  114.                 db.beginTransaction();
  115.                 try
  116.                 {
  117.                         String sql = "create table StudentsTB(student_no text primary key, student_name text not null);";
  118.                         db.execSQL(sql);
  119.                        
  120.                         SQLiteStatement stmt;
  121.                         stmt = db.compileStatement("insert into StudentsTB values(?,?);");
  122.                         for(String[] data :STUDENTS)
  123.                         {
  124.                                 stmt.bindString(1, data[0]);
  125.                                 stmt.bindString(2, data[1]);
  126.                                 stmt.executeInsert();
  127.                         }
  128.                        
  129.                         sql = "create table CoursesTB(student_no text nut null,course_name text not null);";
  130.                         db.execSQL(sql);
  131.                        
  132.                         stmt = db.compileStatement("insert into CoursesTB values(?,?);");
  133.                         for(String[] data :COURSES)
  134.                         {
  135.                                 stmt.bindString(1, data[0]);
  136.                                 stmt.bindString(2, data[1]);
  137.                                 stmt.executeInsert();
  138.                         }
  139.                         db.setTransactionSuccessful();
  140.                 }
  141.                 catch(Exception e)
  142.                 {
  143.                 }
  144.                 finally
  145.                 {
  146.                         db.endTransaction();
  147.                 }
  148.                
  149.                
  150.         }

  151.         @Override
  152.         public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  153.                 // TODO Auto-generated method stub
  154.                
  155.         }
  156. }
複製代碼

TOP

  1. package com.example.sqlite;

  2. import android.os.Bundle;
  3. import android.app.Activity;
  4. import android.content.Context;
  5. import android.database.Cursor;
  6. import android.database.sqlite.SQLiteDatabase;
  7. import android.database.sqlite.SQLiteDatabase.CursorFactory;
  8. import android.database.sqlite.SQLiteOpenHelper;
  9. import android.database.sqlite.SQLiteStatement;
  10. import android.view.Menu;
  11. import android.view.View;
  12. import android.widget.AdapterView;
  13. import android.widget.AdapterView.OnItemSelectedListener;
  14. import android.widget.ArrayAdapter;
  15. import android.widget.ListView;
  16. import android.widget.Spinner;
  17. import android.widget.TextView;

  18. public class MainActivity extends Activity
  19. {
  20.         private DatabaseHelper helper;
  21.     @Override
  22.     public void onCreate(Bundle savedInstanceState) {
  23.         super.onCreate(savedInstanceState);
  24.         setContentView(R.layout.activity_main);
  25.         helper = new DatabaseHelper(this);
  26.         final SQLiteDatabase db = helper.getReadableDatabase();
  27.         Cursor c = db.query ("StudentTB", new String[]{"student_no"}, null, null, null, null, null);
  28.         //Cursor c = db.rawQuery(sql, null);
  29.         c.moveToFirst();
  30.         CharSequence[] list = new CharSequence[c.getCount()];
  31.         for(int i = 0; i < list.length; i++)
  32.         {
  33.                 list[i] = c.getString(0);
  34.                 c.moveToNext();
  35.         }
  36.         c.close();
  37.         Spinner spinner = (Spinner)this.findViewById(R.id.Spinner01);
  38.         spinner.setAdapter(new ArrayAdapter<CharSequence>(this,android.R.layout.simple_spinner_item,list));
  39.         spinner.setOnItemSelectedListener(new OnItemSelectedListener()
  40.         {

  41.                         public void onItemSelected(AdapterView<?> parent, View view,
  42.                                         int position, long id) {
  43.                                 // TODO Auto-generated method stub
  44.                                 String student_no = ((Spinner)parent).getSelectedItem().toString();
  45.                                 Cursor c = db.query("StudentTB", new String[]{"student_name"}, "student_no='"+student_no+"'", null, null, null, null);
  46.                                 c.moveToFirst();
  47.                                 String student_name = c.getString(0);
  48.                                 TextView textView = (TextView)findViewById(R.id.TextView01);
  49.                                 textView.setText(student_name);
  50.                                 c.close();
  51.                                
  52.                                 c = db.query("CoursesTB", new String[]{"course_name"}, "student_no='"+student_no+"'", null, null, null, null);
  53.                                 c.moveToFirst();
  54.                                 CharSequence[] list = new CharSequence[c.getCount()];
  55.                         for(int i = 0; i < list.length; i++)
  56.                         {
  57.                                 list[i] = c.getString(0);
  58.                                 c.moveToNext();
  59.                         }
  60.                         c.close();
  61.                         ArrayAdapter<CharSequence> adapter = new ArrayAdapter<CharSequence>(MainActivity.this,android.R.layout.simple_list_item_1,list);
  62.                         ListView listView = (ListView)findViewById(R.id.ListView01);
  63.                         listView.setAdapter(adapter);
  64.                         }

  65.                         public void onNothingSelected(AdapterView<?> arg0) {
  66.                                 // TODO Auto-generated method stub
  67.                                
  68.                         }
  69.                
  70.         });
  71.     }

  72.     @Override
  73.     public boolean onCreateOptionsMenu(Menu menu) {
  74.         getMenuInflater().inflate(R.menu.activity_main, menu);
  75.         return true;
  76.     }
  77. }

  78. class DatabaseHelper extends SQLiteOpenHelper
  79. {
  80.         private static final String DATABASE_NAME = "StudentDB";
  81.         private static final int DATABASE_VERSION = 1;
  82.        
  83.         private String[][] STUDENTS = {
  84.                         {"A123","Thomas Wang"},
  85.                         {"A135","Tony Huang"},
  86.                         {"A146","Johnny Kao"},
  87.                         {"A158","Mary Liao"}
  88.         };
  89.        
  90.         private String[][] COURSES = {
  91.                         {"A123","Computer Science"},
  92.                         {"A123","English"},
  93.                         {"A123","Mathematic"},
  94.                         {"A123","Chinese"},
  95.                         {"A135","Computer Science"},
  96.                         {"A135","Chinese"},
  97.                         {"A135","Japanese"},
  98.                         {"A135","Mathematic"},
  99.                         {"A146","English"},
  100.                         {"A146","Computer Science"},
  101.                         {"A146","Mathematic"},
  102.                         {"A158","Japanese"},
  103.                         {"A158","France"},
  104.                         {"A158","Chinese"}
  105.         };
  106.        
  107.         public DatabaseHelper(Context context) {
  108.                 super(context, DATABASE_NAME, null, DATABASE_VERSION);
  109.                 // TODO Auto-generated constructor stub
  110.         }

  111.         @Override
  112.         public void onCreate(SQLiteDatabase db)
  113.         {
  114.                 // TODO Auto-generated method stub
  115.                 db.beginTransaction();
  116.                 try
  117.                 {
  118.                         String sql = "create table StudentsTB(student_no text primary key," +
  119.                                         "student_name text not null);";
  120.                         db.execSQL(sql);
  121.                        
  122.                         SQLiteStatement stmt;
  123.                         stmt = db.compileStatement("insert into StudentTB values(?,?);");
  124.                         for(String[] data :STUDENTS)
  125.                         {
  126.                                 stmt.bindString(1, data[0]);
  127.                                 stmt.bindString(2, data[1]);
  128.                                 stmt.executeInsert();
  129.                         }
  130.                        
  131.                         sql = "create table CoursesTB(student_no text primary key," +
  132.                                         "course_name text not null);";
  133.                         db.execSQL(sql);
  134.                        
  135.                         stmt = db.compileStatement("insert into CoursesTB values(?,?);");
  136.                         for(String[] data :COURSES)
  137.                         {
  138.                                 stmt.bindString(1, data[0]);
  139.                                 stmt.bindString(2, data[1]);
  140.                                 stmt.executeInsert();
  141.                         }
  142.                 }
  143.                 catch(Exception e)
  144.                 {}
  145.                
  146.         }

  147.         @Override
  148.         public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  149.                 // TODO Auto-generated method stub
  150.                
  151.         }
  152. }
複製代碼

TOP

  1. c.moveToFirst();
  2.                                 String student_name = c.getString(0);
  3.                                 TextView textView = (TextView)findViewById(R.id.TextView01);
  4.                                 textView.setText(student_name);
  5.                                 c.close();
複製代碼

TOP

  1. spinner.setOnItemSelectedListener(new OnItemSelectedListener()
  2.         {

  3.                         public void onItemSelected(AdapterView<?> arg0, View arg1,
  4.                                         int arg2, long arg3) {
  5.                                 // TODO Auto-generated method stub
  6.                                
  7.                         }

  8.                         public void onNothingSelected(AdapterView<?> arg0) {
  9.                                 // TODO Auto-generated method stub
  10.                                 String student_no = ((Spinner)parent).getSelectedItem().toString();
  11.                                 Cursor c = db.query("StudentTB", new String[]{"student_name"}, "student_no='"+student_no+"'", null, null, null, null);
  12.                         }
  13.                
  14.         });
複製代碼

TOP

  1. spinner.setOnItemSelectedListener(new OnItemSelectedListener()
  2.         {

  3.                         public void onItemSelected(AdapterView<?> arg0, View arg1,
  4.                                         int arg2, long arg3) {
  5.                                 // TODO Auto-generated method stub
  6.                                
  7.                         }

  8.                         public void onNothingSelected(AdapterView<?> arg0) {
  9.                                 // TODO Auto-generated method stub
  10.                                
  11.                         }
  12.                
  13.         });
複製代碼

TOP

  1. Spinner spinner = (Spinner)this.findViewById(R.id.Spinner01);
  2.         spinner.setAdapter(new ArrayAdapter<CharSequence>(this,android.R.layout.simple_spinner_item,list));
複製代碼

TOP

  1. c.moveToFirst();
  2.         CharSequence[] list = new CharSequence[c.getCount()];
  3.         for(int i = 0; i < list.length; i++)
  4.         {
  5.                 list[i] = c.getString(0);
  6.                 c.moveToNext();
  7.         }
  8.         c.close();
複製代碼

TOP

  1. helper = new DatabaseHelper(this);
  2.         final SQLiteDatabase db = helper.getReadableDatabase();
  3.         Cursor c = db.query("StudentTB", new String[]{"student_no"}, null, null, null, null, null);
複製代碼

TOP

  1. helper = new DatabaseHelper(this);
  2.         final SQLiteDatabase db = helper.getReadableDatabase();
  3.         Cursor c = db.query("StudentTB", new String[]{"student_no"}, null, null, null, null, null);
複製代碼

TOP

  1. sql = "create table CoursesTB(student_no text primary key," +
  2.                                         "course_name text not null);";
  3.                         db.execSQL(sql);
  4.                        
  5.                         stmt = db.compileStatement("insert into CoursesTB values(?,?);");
  6.                         for(String[] data :COURSES)
  7.                         {
  8.                                 stmt.bindString(1, data[0]);
  9.                                 stmt.bindString(2, data[1]);
  10.                                 stmt.executeInsert();
  11.                         }
複製代碼

TOP

  1. sql = "create table CoursesTB(student_no text primary key," +
  2.                                         "course_name text not null);";
  3.                         db.execSQL(sql);
  4.                        
  5.                         stmt = db.compileStatement("insert into CoursesTB values(?,?);");
  6.                         for(String[] data :COURSES)
  7.                         {
  8.                                 stmt.bindString(1, data[0]);
  9.                                 stmt.bindString(2, data[1]);
  10.                                 stmt.executeInsert();
  11.                         }
複製代碼

TOP

  1. SQLiteStatement stmt;
  2.                         stmt = db.compileStatement("insert into StudentTB values(?,?);");
  3.                         for(String[] data :STUDENTS)
  4.                         {
  5.                                 stmt.bindString(1, data[0]);
  6.                                 stmt.bindString(2, data[1]);
  7.                                 stmt.executeInsert();
  8.                         }
複製代碼

TOP

  1. SQLiteStatement stmt;
  2.                         stmt = db.compileStatement("insert into StudentTB values(?,?);");
  3.                         for(String[] data :STUDENTS)
  4.                         {
  5.                                 stmt.bindString(1, data[0]);
  6.                                 stmt.bindString(2, data[1]);
  7.                                 stmt.executeInsert();
  8.                         }
複製代碼

TOP

  1. String sql = "create table StudentsTB(student_no text primary key," +
  2.                                         "student_name text not null);";
複製代碼

TOP

  1. String sql = "create table StudentsTB(student_no text primary key," +
  2.                                         "student_name text not null);";
複製代碼

TOP

  1. private String[][] COURSES = {
  2.                         {"A123","Computer Science"},
  3.                         {"A123","English"},
  4.                         {"A123","Mathematic"},
  5.                         {"A123","Chinese"},
  6.                         {"A135","Computer Science"},
  7.                         {"A135","Chinese"},
  8.                         {"A135","Japanese"},
  9.                         {"A135","Mathematic"},
  10.                         {"A146","English"},
  11.                         {"A146","Computer Science"},
  12.                         {"A146","Mathematic"},
  13.                         {"A158","Japanese"},
  14.                         {"A158","France"},
  15.                         {"A158","Chinese"},
  16.         };
複製代碼

TOP

  1. private String[][] COURSES = {
  2.                         {"A123","Computer Science"},
  3.                         {"A123","English"},
  4.                         {"A123","Mathematic"},
  5.                         {"A123","Chinese"},
  6.                         {"A135","Computer Science"},
  7.                         {"A135","Chinese"},
  8.                         {"A135","Japanese"},
  9.                         {"A135","Mathematic"},
  10.                         {"A146","English"},
  11.                         {"A146","Computer Science"},
  12.                         {"A146","Mathematic"},
  13.                         {"A158","Japanese"},
  14.                         {"A158","France"},
  15.                         {"A158","Chinese"},
  16.         };
複製代碼

TOP

  1. private static final String DATABASE_NAME = "StudentDB";
  2.         private static final int DATABASE_VERSION = 1;
  3.        
  4.         private String[][] STUDENTS = {
  5.                         {"A123","Thomas Wang"},
  6.                         {"A135","Tony Huang"},
  7.                         {"A146","Johnny Kao"},
  8.                         {"A158","Mary Liao"},
  9.         };
複製代碼

TOP

  1. class DatabaseHelper extends SQLiteOpenHelper
  2. {

  3.         public DatabaseHelper(Context context, String name, CursorFactory factory,
  4.                         int version) {
  5.                 super(context, name, factory, version);
  6.                 // TODO Auto-generated constructor stub
  7.         }

  8.         @Override
  9.         public void onCreate(SQLiteDatabase db) {
  10.                 // TODO Auto-generated method stub
  11.                
  12.         }

  13.         @Override
  14.         public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  15.                 // TODO Auto-generated method stub
  16.                
  17.         }
  18. }
複製代碼

TOP

返回列表