AndroidStudio中SQLite数据库的创建

ORSQL 2017-10-27 11:25:54
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","service@Jun.com");
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);
}
}
各位大神,我这是按照安卓书上,创建数据库和数据表的程序,但是仿真器上运行不出来,这是什么问题呢,跪求
...全文
2293 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
Hydrochloride 2018-04-26
  • 打赏
  • 举报
回复
按照博主的方法试了下,报错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)) 加逗号之后运行成功。
r00_a2lBUR 2018-04-26
  • 打赏
  • 举报
回复 1
String createTable="CREATE TABLE IF NOT EXISTS" +... 这里好像少了空格
这个人中暑了 2017-12-05
  • 打赏
  • 举报
回复
数据库不是这样创建的 你应该单独建立一个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变量, 用这个变量进行数据库的增删改查
r00_a2lBUR 2017-12-01
  • 打赏
  • 举报
回复
引用 7 楼 f839903061 的回复:
无法启动activity,和你的线程有关系吧,你是不是在线程做了什么违规操作?
感觉是这样子的。
moonFY 2017-11-06
  • 打赏
  • 举报
回复
在主线程中做了对数据库的操作, 建议在子线程中进行该操作
澜、 2017-11-06
  • 打赏
  • 举报
回复
日志全拿出来看下
ORSQL 2017-11-06
  • 打赏
  • 举报
回复
引用 7 楼 f839903061 的回复:
无法启动activity,和你的线程有关系吧,你是不是在线程做了什么违规操作?
正常的应该怎样呢,我也不太懂啊
ORSQL 2017-11-06
  • 打赏
  • 举报
回复
引用 12 楼 f839903061 的回复:
你加载的文件的名称或者路径里面的-连字符,替换成下划线试试或者不要有连字符试试
没用呢
雨焰 2017-11-06
  • 打赏
  • 举报
回复
你加载的文件的名称或者路径里面的-连字符,替换成下划线试试或者不要有连字符试试
ORSQL 2017-11-06
  • 打赏
  • 举报
回复
引用 9 楼 u013632494 的回复:
日志全拿出来看下

[img=https://img-bbs.csdn.net/upload/201711/06/1509947578_271856.png][/img]
ORSQL 2017-11-02
  • 打赏
  • 举报
回复
引用 4 楼 gonghaifeng2010 的回复:
"CREATE TABLE IF NOT EXISTS" EXISTS后面加个空格试试
试了,不行啊
ORSQL 2017-11-02
  • 打赏
  • 举报
回复
引用 2 楼 f839903061 的回复:
查看logcat有没有报错吧!

不知道该咋办啊,求教
雨焰 2017-11-02
  • 打赏
  • 举报
回复
无法启动activity,和你的线程有关系吧,你是不是在线程做了什么违规操作?
harry.gong 2017-10-31
  • 打赏
  • 举报
回复
"CREATE TABLE IF NOT EXISTS" EXISTS后面加个空格试试
ORSQL 2017-10-31
  • 打赏
  • 举报
回复
雨焰 2017-10-31
  • 打赏
  • 举报
回复
查看logcat有没有报错吧!
xiaohuh421 2017-10-30
  • 打赏
  • 举报
回复
看logcat中, 是否报错. 是否增加相关权限.

80,357

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧