package com.sqlite.ch15_hellosqlite;import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;public class MainActivity extends AppCompatActivity {
    static final String db_name="testDB";
    static final String tb_name="test";
    SQLiteDatabase db;    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        db = openOrCreateDatabase(db_name, Context.MODE_PRIVATE,null);
        String createTable="CREATE TABLE IF NOT EXISTS" +
                tb_name +
                "(name VARCHAR(32),"+
                "phone VARCHAR(16)"+
                "email VARCHAR(64))";
        db.execSQL(createTable);        addData("Flag Publishing Co.","10-12345678","servic@flag. com");
        addData("Jun Magazine","10-24680135","[email protected]");
        TextView txv=(TextView)findViewById(R.id.txv);
        txv.setText("数据库文件路径:"+db.getPath()+ "\n" +
                "数据库分页大小:"+db.getPageSize() + "Byte\n" +
                "数据量上限:"+db.getMaximumSize() + "Byte\n");
        db.close();
    }    private void addData(String name,String phone,String email){
        ContentValues cv=new ContentValues(3);
        cv.put("name",name);
                cv.put("phone",phone);
                        cv.put("email",email);                        db.insert(tb_name,null,cv);
    }
}
各位大神,我这是按照安卓书上,创建数据库和数据表的程序,但是仿真器上运行不出来,这是什么问题呢,跪求

解决方案 »

  1.   

    看logcat中, 是否报错.  是否增加相关权限.
      

  2.   

    查看logcat有没有报错吧!
      

  3.   

    "CREATE TABLE IF NOT EXISTS" EXISTS后面加个空格试试
      

  4.   

    无法启动activity,和你的线程有关系吧,你是不是在线程做了什么违规操作?
      

  5.   

    数据库不是这样创建的
    你应该单独建立一个DbHelper类,继承SQLiteOpenHelper,实现Oncreate方法例如
     @Override
        public void onCreate(SQLiteDatabase sqLiteDatabase) {
            String CREATE_TABLE="CREATE TABLE "+ ProductContract.ProductEntry.TABLE_NAME+"("
                    + ProductContract.ProductEntry._ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
                    + ProductContract.ProductEntry.COLUMN_NAME + " TEXT, "
                    + ProductContract.ProductEntry.COLUMN_PRICE + " TEXT, "
                    + ProductContract.ProductEntry.COLUMN_REMAINDER + " INTEGER, "
                    + ProductContract.ProductEntry.COLUMN_SOLDNUMBER + " INTEGER, "
                    + ProductContract.ProductEntry.COLUMN_PICTURE + " BLOB);";
            sqLiteDatabase.execSQL(CREATE_TABLE);
        }然后得到其实例化对象
    通过对象的getReadableDatabase()和getWriteableDatabase()方法得到SQLiteDatabase变量,
    用这个变量进行数据库的增删改查
      

  6.   

    按照博主的方法试了下,报错while compiling: CREATE TABLE IF NOT EXISTStest(name VARCHAR(32),phone VARCHAR(16)email VARCHAR(64))
    发现是博主少加了个逗号,应该是while compiling: CREATE TABLE IF NOT EXISTStest(name VARCHAR(32),phone VARCHAR(16),email VARCHAR(64))
    加逗号之后运行成功。
      

  7.   

     String createTable="CREATE TABLE IF NOT EXISTS" +... 这里好像少了空格