qq_26614827 2017-10-17 10:32 采纳率: 0%
浏览 1726

无法往sqlite插入数据

这里是相关的代码
onCreat()中
//数据库
dbHelper = new MyDatabaseHelper(this,"ASData.db",null,1000);//检测是否有数据库
dbHelper.getWritableDatabase();//无,则创建
初始化数据
PurchaseOrder purchase1 = new PurchaseOrder("AB11111111", "艾鲜农场", 22, "2017-10-11", "已完成");
mData.add(purchase1);
PurchaseOrder purchase2 = new PurchaseOrder("CD22222222", "哈哈农场", 18, "2017-10-12", "已入库");
mData.add(purchase2);
PurchaseOrder purchase3 = new PurchaseOrder("EF33333333", "百合农场", 6, "2017-10-12", "已审核");
mData.add(purchase3);
PurchaseOrder purchase4 = new PurchaseOrder("GH44444444", "艾鲜农场", 11, "2017-10-13", "未审核");
mData.add(purchase4);

    SQLiteDatabase db = dbHelper.getWritableDatabase();
    db.delete("PurchaseOrder",null,null);
    ContentValues values = new ContentValues();
    for (int position = 0;position < mData.size();position ++) {
        values.put("purchaseId",mData.get(position).getPurchaseId());
        values.put("provider",mData.get(position).getProvider());
        values.put("orderCount",mData.get(position).getOrderCount());
        values.put("operateTime",mData.get(position).getOperateTime());
        values.put("purchaseState",mData.get(position).getPurchaseState());
        db.insert("PurchaseOrder",null,values);
        values.clear();
    }

这里我怀疑数据没有插入到表中
循环查询表
SQLiteDatabase db = dbHelper.getWritableDatabase();
Cursor cursor = db.query("PurchaseOrder",null,null,null,null,null,null);
PurchaseOrder purchaseorder;
Boolean haha = cursor.moveToFirst();
if (cursor.moveToFirst()) {
do {
purchaseorder = new PurchaseOrder();//创建一个新对象
purchaseorder.setPurchaseId(cursor.getString(cursor.getColumnIndex("purchaseId")));
purchaseorder.setProvider(cursor.getString(cursor.getColumnIndex("provider")));
purchaseorder.setOrderCount(cursor.getInt(cursor.getColumnIndex("orderCount")));
purchaseorder.setOperateTime(cursor.getString(cursor.getColumnIndex("operateTime")));
purchaseorder.setPurchaseState(cursor.getString(cursor.getColumnIndex("purchaseState")));
mDataWhole.add(purchaseorder);
} while (cursor.moveToNext());
cursor.close();
}
最最关键的问题是,在另外 一个activity中,这些思路是可行的。
这里再附上MyDatabaseHelper的代码:
public class MyDatabaseHelper extends SQLiteOpenHelper {

private String TAG = "Database ";

public static final String CREATE_PLANPRODUCT = "create table PlanProduct ("
        +"planId integer primary key autoincrement, "
        +"productName text, "
        +"unit text, "
        +"purchaseNum text, "
        +"planTime text, "
        +"planState text, "
        +"provider text)";

public static final String CREATE_PURCHASEORDER = "create table PurchaseOrder ("
        +"purchaseId integer primary key autoincrement, "
        +"provider text, "
        +"orderCount text, "
        +"operateTime text, "
        +"purchaseState text)";

private Context mContext;

public MyDatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
    super(context, name, factory, version);
    mContext = context;
}

@Override
public void onCreate(SQLiteDatabase db) {
    db.execSQL(CREATE_PLANPRODUCT);
    db.execSQL(CREATE_PURCHASEORDER);
    //Log.d(TAG,"Create succeeded");
    Toast.makeText(mContext,"Create succeeded",Toast.LENGTH_SHORT).show();
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    db.execSQL("drop table if exists PlanProduct");
    db.execSQL("drop table if exists PurchaseOrder");
    onCreate(db);
}

}
拜托各位大佬啦,谢谢!!!

  • 写回答

1条回答 默认 最新

  • threenewbee 2017-10-18 01:06
    关注

    检查类型、允许的最大长度,sql语句,字段名,数据库文件是否存在。
    有异常日志的话把异常输出下看看。

    评论

报告相同问题?

悬赏问题

  • ¥15 C#读写EXCEL文件,不同编译
  • ¥15 如何提取csv文件中需要的列,将其整合为一篇完整文档,并进行jieba分词(语言-python)
  • ¥15 MapReduce结果输出到HBase,一直连接不上MySQL
  • ¥15 扩散模型sd.webui使用时报错“Nonetype”
  • ¥15 stm32流水灯+呼吸灯+外部中断按键
  • ¥15 将二维数组,按照假设的规定,如0/1/0 == "4",把对应列位置写成一个字符并打印输出该字符
  • ¥15 NX MCD仿真与博途通讯不了啥情况
  • ¥15 win11家庭中文版安装docker遇到Hyper-V启用失败解决办法整理
  • ¥15 gradio的web端页面格式不对的问题
  • ¥15 求大家看看Nonce如何配置