2011-04-27 18 views
62

Realmente necesito un archivo de base de datos sqlite para estudios. Estoy creando una aplicación en C# y necesito una base de datos con muchas tablas, campos, vistas, índices, restricciones, etc. Y no quiero crearlo yo mismo usando la herramienta de línea de comandos sqlite.¿Dónde puedo encontrar un ejemplo de archivo de base de datos SQLite o volcarlo?

Supongo que alguien puede decir dónde puedo encontrar ese archivo, puede haber diferentes aplicaciones o ejemplos, o incluso puede enviarme su propio archivo de base de datos. Apreciaré cualquier ayuda.

+30

Esta pregunta debe volverse a abrir porque es válida y útil. No solicita debate, argumentos, encuestas ni discusiones extensas. La respuesta actualmente aceptada (proporcionada por Mohamed Meligy) es concreta, objetiva y útil para la comunidad de programación general. Encontré la base de datos Chinook muy útil, y es poco probable que la hubiera encontrado tan rápido como lo hice si no hubiera sido por esta pregunta. – Escualo

+2

Si eres un fanático Pokémon puedes obtener [Pokédex de veekun] (http://veekun.com/static/pokedex/downloads/veekun-pokedex.sqlite.gz), que es de alrededor de 30mb y contiene toda la información hasta Pokémon Blanco y negro 2. – user1461607

Respuesta

75

Hay una base de datos de la muestra agradable llamado Chinook. Está tratando de ser el ejemplo moderno para reemplazar NorthWind. Tienen versiones para diferentes servidores de bases de datos, incluido SQLite.

También, comprobar esta muestra en los foros cliente SQLite .NET (que se adjunta al primer mensaje)

Tal vez una herramienta de interfaz gráfica de usuario para crear material de base de datos facilita el arranque, comprobar éste , gratuito para uso personal

Personalmente, creo bases de datos SQLite para probar las asignaciones NHibernate. Por lo general, creo mis clases y mapeos y luego uso las asignaciones para generar el esquema en un nuevo archivo SQLite (o en la base de datos de memoria, con más frecuencia) y lo uso. La mayoría de los artículos de introducción de NHibernate también lo hacen.

1

que utiliza la operación sqlightCrud

primera clase de base de datos creat. paquete com.db;

import android.content.ContentValues; 
import android.content.Context; 
import android.database.Cursor; 
import android.database.SQLException; 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteOpenHelper; 
import android.util.Log; 
import android.widget.Toast; 

public class DataBaseSampleActivity { 

    /** for database */ 
    static final String DataBaseName = "EmployeDB"; 

    /** for employee table */ 
    static final String EmployeTable = "Employees"; 
    static final String ColEmpID = "EmpId"; 
    static final String ColEmpName = "EmpName"; 
    static final String ColEmpAge = "EmpAge"; 
    static final String ColDept = "Dept"; 

    /** for department table */ 
    static final String DeptTable = "Department"; 
    static final String ColDeptID = "DeptId"; 
    static final String ColDeptName = "DeptName"; 

    public static final int DATABASE_VERSION = 2; 

    //private static final String KEY_ROWID = "_id"; 

    private static final String EMPLOYEE_TABLE_CREATE ="Create table " + EmployeTable + 
    //"(_id INTEGER UNIQUE," + [old code] 
    "("+ColEmpID  + " INTEGER PRIMARY KEY AUTOINCREMENT," + 
    ColEmpName + " VARCHAR(15) ," + 
    ColEmpAge + " INT(15) ," + 
    ColDept  + " VARCHAR(15)) "; 

    private final Context context; 
    private DatabaseHelper DBHelper; 
    private SQLiteDatabase db; 

    public DataBaseSampleActivity(Context ctx){ 
     Log.i("test****", "**test***"); 
     this.context = ctx; 
     DBHelper = new DatabaseHelper(context); 
    } 
    private static class DatabaseHelper extends SQLiteOpenHelper{ 
     public DatabaseHelper(Context context){ 
      super(context, DataBaseName , null, DATABASE_VERSION); 
      Log.i("context","context"); 
     } 

     @Override 
     public void onCreate(SQLiteDatabase db) { 
      // TODO Auto-generated method stub 
      db.execSQL(EMPLOYEE_TABLE_CREATE); 
      Log.i("************", "table created"); 
     } 

     @Override 
     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
      // TODO Auto-generated method stub 
      Log.w("tag", "Upgrading database from version " + oldVersion + " to "+ newVersion + ", which will destroy all old data"); 
      db.execSQL("DROP TABLE IF EXISTS " + EmployeTable); 
      onCreate(db); 
     } 

    }; 

    public DataBaseSampleActivity open() throws SQLException{ 
     db = DBHelper.getWritableDatabase(); 
     Log.i("open", "message"); 
     return this; 
    } 
    public void close(){ 
     DBHelper.close(); 
    } 

    //public long insert(Integer empid, String empname, Integer empage, String empdept) { 
    public long insert(String empname, Integer empage, String empdept) { 
     Log.i("**** suruchitest **** ","*** test ***"); 
     ContentValues initialValues = new ContentValues(); 

     //initialValues.put(ColEmpID, empid); 
     initialValues.put(ColEmpName, empname); 
     initialValues.put(ColEmpAge, empage); 
     initialValues.put(ColDept, empdept); 

     return db.insert(EmployeTable, null, initialValues); 
    } 

    public Cursor getEmpValues(){ 
     Cursor mCursor = db.query(EmployeTable, null, null, null, null, null, null); 
     return mCursor; 
    } 

    public boolean deleteEmpList(long rowId){ 
     Toast.makeText(context, "deleted", 2000).show(); 
     return db.delete(EmployeTable, ColEmpID +" = " + rowId, null) > 0; 
    } 
    public boolean updateEmplist(String empname, Integer empage, String empdept, Integer rowid){ 

     ContentValues initialValues = new ContentValues(); 
     Log.i("##### "+rowid,""+empname+" "+empage+" "+empdept); 

     //initialValues.put(ColEmpID, rowid); 
     initialValues.put(ColEmpName,empname); 
     initialValues.put(ColEmpAge,empage); 
     initialValues.put(ColDept,empdept); 

     try{ 
      int b = db.update(EmployeTable, initialValues, ColEmpID+ " = " + rowid, null); 
      Log.i("update", "up "+rowid+" ddd "+b); 
      return true; 
     }catch (Exception e){ 
      Log.d("asdfasdfsadfasdf", "_--___--__--_=-_"); 
      return false; 
     } 
    } 
} 




2. create Main Activity 


package com.db; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Toast; 

public class MainActivity extends Activity implements OnClickListener { 

    Button buttonsubmit; 
    EditText empid,empname,empage,empdept; 

    String emp_name, emp_dept; 
    //Integer emp_id,emp_age; 
    Integer emp_age; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 


     buttonsubmit = (Button) findViewById(R.id.btnSubmit); 
     buttonsubmit.setOnClickListener(this); 

     // empid =(EditText) findViewById(R.id.empid); 
     empname =(EditText) findViewById(R.id.empname); 
     empage =(EditText) findViewById(R.id.empage); 
     empdept =(EditText) findViewById(R.id.empdpt); 


    } 

    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     DataBaseSampleActivity dbObj = new DataBaseSampleActivity(getApplicationContext()); 

      // String Emp_ids = empid.getText().toString();   
      // emp_id = Integer.parseInt(Emp_ids); 
      //emp_id = empid.getText().toString(); 

      String Emp_ages = empage.getText().toString(); 
      emp_age = Integer.parseInt(Emp_ages); 

      //emp_age = empage.getText().toString(); 

      emp_name = empname.getText().toString(); 
      emp_dept = empdept.getText().toString(); 


     try { 
       Log.i("try", "message"); 
       dbObj.open(); 
       //long temp = dbObj.insert(emp_id, emp_name, emp_age, emp_dept); 
       long temp = dbObj.insert(emp_name, emp_age, emp_dept); 
       //Toast.makeText(getApplicationContext(), "temp"+temp, 3000).show(); 
       dbObj.close(); 

       Intent intent = new Intent(this,ShowListView.class); 
       startActivity(intent); 
      } catch (Exception e) { 
       // TODO: handle exception 
       Log.i("catch", "message"); 
      } 
    } 
} 





2. Create listclass to show tha data 


package com.db; 

import java.lang.reflect.Array; 
import java.util.ArrayList; 

import android.R.integer; 
import android.app.Activity; 
import android.content.Context; 
import android.content.Intent; 
import android.database.Cursor; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.view.ViewGroup; 
import android.widget.BaseAdapter; 
import android.widget.Button; 
import android.widget.CheckBox; 
import android.widget.CompoundButton; 
import android.widget.CompoundButton.OnCheckedChangeListener; 
import android.widget.ImageView; 
import android.widget.ListView; 
import android.widget.TextView; 
import android.widget.Toast; 

public class ShowListView extends Activity { 

    ArrayList<String> arrname = new ArrayList<String>(); 
    ArrayList<String> arrage = new ArrayList<String>(); 
    ArrayList<String> arrdept = new ArrayList<String>(); 
    ArrayList<Integer> arrRowId = new ArrayList<Integer>(); 
    ArrayList<Integer> arrDelId = new ArrayList<Integer>(); 
    Array[] arr; 
    Button deleteBtn; 
    Button btnadd; 
    int index = 0; 

    public int pos; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.emplist); 

     //Toast.makeText(getApplicationContext(), "LIST VIEW", 5000).show(); 

     ToGetCursorValues(); 

    } 

    public void ToGetCursorValues(){ 
     DataBaseSampleActivity db = new DataBaseSampleActivity(getApplicationContext()); 
     db.open(); 
     try { 
      Cursor cur = db.getEmpValues(); 
      cur.moveToFirst(); 
      arrRowId.clear(); 
      arrname.clear(); 
      arrage.clear(); 
      arrdept.clear(); 
      while (!cur.isAfterLast()) { 
       arrRowId.add(cur.getInt(cur.getColumnIndex(db.ColEmpID))); 
       arrname.add(cur.getString(cur.getColumnIndex(db.ColEmpName))); 
       arrage.add(cur.getString(cur.getColumnIndex(db.ColEmpAge))); 
       arrdept.add(cur.getString(cur.getColumnIndex(db.ColDept))); 
       cur.moveToNext(); 
      } 
      //Log.i("#####","col "+arrlist.size()); 
      //Toast.makeText(getApplicationContext(), "* "+arrname.size()+","+arrage.size()+","+arrdept.size(), 5000).show(); 

      //Toast.makeText(getApplicationContext(), "***** "+arrRowId.get(0), 2000).show(); 

     } catch (Exception e) { 
      // TODO: handle exception 
     } 


     ListView lst = (ListView) findViewById(R.id.mylist); 
     lst.setAdapter(new ListAdapter(getApplicationContext())); 

     db.close(); 
    } 

    public class ListAdapter extends BaseAdapter implements OnCheckedChangeListener,OnClickListener{ 
     private LayoutInflater inflater = null; 

     public ListAdapter(Context c){ 
      Log.i("Context","Context"); 
      inflater = LayoutInflater.from(c); 
     } 
     @Override 
     public int getCount() { 
      // TODO Auto-generated method stub 
      //return 0; 
      return arrname.size(); 
     } 

     @Override 
     public Object getItem(int position) { 
      // TODO Auto-generated method stub 
      return null; 
     } 

     @Override 
     public long getItemId(int position) { 
      // TODO Auto-generated method stub 
      return 0; 
     } 
     class ViewHolder{ 
      TextView empnameview; 
      TextView empageview; 
      TextView empdeptview; 
      CheckBox empchkbox; 
     } 

     // create a new ImageView for each item referenced by the Adapter 
     public View getView(final int position, View convertView, ViewGroup parent) { 


      Log.i("*view","view*"); 
      ViewHolder vh; 
      //ImageView imageView; 
      if (convertView == null) { // if it's not recycled, initialize some attributes 

       Log.i("*null1*","*null1*"); 

       vh = new ViewHolder(); 
       convertView = inflater.inflate(R.layout.customlist, null); 

       Log.i("*null2*","*null2*"); 
       pos = position; 
       vh.empnameview = (TextView) convertView.findViewById(R.id.ename); 
       vh.empageview = (TextView) convertView.findViewById(R.id.eage); 
       vh.empdeptview = (TextView) convertView.findViewById(R.id.edept); 
       vh.empchkbox = (CheckBox) convertView.findViewById(R.id.ckekDelete); 

       Log.i("*null3*","*null3*"); 

       vh.empnameview.setText(arrname.get(position)); 

       vh.empnameview.setOnClickListener(new OnClickListener() { 

        @Override 
        public void onClick(View v) { 
         // TODO Auto-generated method stub 
         Intent intent = new Intent(ShowListView.this,UpdateDB.class); 
         String name = arrname.get(position); 
         int age = Integer.parseInt(arrage.get(position)); 
         String dept = arrdept.get(position); 
         int rowid = arrRowId.get(position); 

         intent.putExtra("KeyName" , name); 
         intent.putExtra("Keyage" , age); 
         intent.putExtra("Keydept" , dept); 
         intent.putExtra("Rowid", rowid); 

         startActivity(intent); 
        } 
       }); 

       vh.empageview.setText(arrage.get(position)); 
       vh.empdeptview.setText(arrdept.get(position)); 
       vh.empchkbox.setOnCheckedChangeListener(new OnCheckedChangeListener() { 

        @Override 
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
         // TODO Auto-generated method stub 
         //Toast.makeText(getApplicationContext(), "OnChecked"+position, 2000).show(); 
         if(buttonView.isChecked()){ 
          arrDelId.add(arrRowId.get(position)); 
          //Toast.makeText(getApplicationContext(), "OnChecked"+position, 2000).show(); 

//       DataBaseSampleActivity db = new DataBaseSampleActivity(getApplicationContext()); 
//       db.open(); 
//       db.deleteEmpList(arrRowId.get(position)); 
//       Toast.makeText(getApplicationContext(), "delet", 3000).show(); 
//       db.close(); 
//         
         } 
         else{ 
          for(int i=0;i<arrDelId.size();i++){ 
           if(arrRowId.get(position) == arrDelId.get(i)){ 
            arrDelId.remove(i); 
           } 
          } 
         } 
        } 
       }); 

       Log.i("******", "complete"); 

      } else { 
       Log.i("*not*","*not*"); 
       vh = (ViewHolder) convertView.getTag(); 
      } 

      deleteBtn = (Button) findViewById(R.id.delBtn); 
      deleteBtn.setOnClickListener(this); 

      btnadd = (Button) findViewById(R.id.addBtn); 
      btnadd.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View v) { 
        // TODO Auto-generated method stub 
        Intent inte = new Intent(ShowListView.this, MainActivity.class); 
        startActivity(inte); 
       } 
      }); 

      // imageView.setImageResource(thumbarr[position]); 
      return convertView; 

     } 

     public View getView1(int position, View convertView, ViewGroup parent) { 
      // TODO Auto-generated method stub 
      return null; 
     } 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 

      for(int i=0;i<arrDelId.size();i++){ 
       //Toast.makeText(getApplicationContext(), "OnDeleteClick "+i, 2000).show(); 
       DataBaseSampleActivity db = new DataBaseSampleActivity(getApplicationContext()); 
       db.open(); 
       db.deleteEmpList(arrDelId.get(i)); 
       //Toast.makeText(getApplicationContext(), "delet", 3000).show(); 
       db.close(); 
      } 

      ToGetCursorValues(); 

     } 
     @Override 
     public void onCheckedChanged(CompoundButton buttonView, 
       boolean isChecked) { 
      // TODO Auto-generated method stub 

     } 


    } 

} 


3. for update 

package com.db; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Toast; 

public class UpdateDB extends Activity implements OnClickListener{ 

    Intent intnt; 
    EditText editname,editage,editdept; 
    Button updateBtn; 
    int row_id; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     editname = (EditText) findViewById(R.id.empname); 
     editage = (EditText) findViewById(R.id.empage); 
     editdept = (EditText) findViewById(R.id.empdpt); 

     updateBtn = (Button) findViewById(R.id.btnSubmit); 
     updateBtn.setText("Update"); 

     intnt = getIntent(); 

     editname.setText(intnt.getStringExtra("KeyName")); 
     editage.setText(""+intnt.getIntExtra("Keyage",0)); 
     editdept.setText(intnt.getStringExtra("Keydept")); 

     row_id = intnt.getIntExtra("Rowid", 0); 

     updateBtn.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       Toast.makeText(getApplicationContext(), "update", 3000).show(); 
       DataBaseSampleActivity db = new DataBaseSampleActivity(getApplicationContext()); 
       db.open(); 
       String empname = editname.getText().toString(); 
       int empage = Integer.parseInt(editage.getText().toString()); 
       String empdept = editdept.getText().toString(); 
       //db.deleteEmpList(row_id); 
       db.updateEmplist(empname, empage, empdept,row_id); 
       //Toast.makeText(getApplicationContext(), "delet", 3000).show(); 
       db.close(); 
       Intent list = new Intent(UpdateDB.this,ShowListView.class); 
       startActivity(list); 
      } 
     }); 

     // Toast.makeText(getApplicationContext(), "update "+intnt.getIntExtra("Keyage",0), 3000).show(); 
    } 

    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 

    } 

} 
Cuestiones relacionadas