Android Can';t将多项目Listview插入Sqlite

Android Can';t将多项目Listview插入Sqlite,android,sqlite,listview,Android,Sqlite,Listview,我是初学者Android开发者。我需要一些帮助。当我尝试将数据插入2表order和orderdtl时。orderdtl正在从EntryTO.java上的多项目listview获取数据。没有更改,没有错误,仍然无法插入。这是我的数据库: private static final String db_createorder = "create table if not exists " + TABLE_ORDER + "(" + ORDER_ID +" varchar(15

我是初学者Android开发者。我需要一些帮助。当我尝试将数据插入2表order和orderdtl时。orderdtl正在从EntryTO.java上的多项目listview获取数据。没有更改,没有错误,仍然无法插入。这是我的数据库:

private static final String db_createorder = "create table  if not exists "
      + TABLE_ORDER + "("
      + ORDER_ID +" varchar(15) primary key, "
      + ORDER_DATE + " DATETIME, "
      + NOTES + " varchar(100) not null, "
      + OUTLET_ID + " varchar not null, " +
      "foreign key ("+ OUTLET_ID +") references "+TABLE_OUTLET+"("+ OUTLET_ID +"));";

private static final String db_createorderdtl = "create table  if not exists "
      + ORDER_DTL + "("
      + ORDER_ID +" varchar not null, "
      + COLUMN_ID+ " integer not null, "
      + QUANTITY + " varchar(3) not null," +
      " foreign key ("+ORDER_ID+") references "+TABLE_ORDER+"("+ORDER_ID+"),"+
      " foreign key ("+COLUMN_ID+") references "+TABLE_NAME+"("+COLUMN_ID+"), "+
      "primary key  ("+ORDER_ID+"," +COLUMN_ID+ "));";
这是我的EntryTO.java代码的一部分

String orderid = orderid();
String orderdate = orderdate();
String notes = edtnotes.getText().toString();
String outletid = Globals.outletid;
order = dataSource.createorder(orderid,orderdate,notes, outletid);
        for(int i = 1; i< Globals.mylist.size(); i++){
        if(Globals.mylist.size()!=0){
            Globals.mylist.set(i,map1);
            map1.get(id);
            map1.get(qty);
            }
        orderdtl = dataSource.createorderdtl(orderid, Id, qty);

这个代码有问题吗?我找不到地方请帮帮我。。我被卡住了。谢谢。

SQL3支持5种数据类型:

空。该值为空值

整数。该值是一个有符号整数,根据值的大小存储在1、2、3、4、6或8字节中

实数。该值是一个浮点值,存储为8字节IEEE浮点数

文本。该值是一个文本字符串,使用数据库编码(UTF-8、UTF-16BE或UTF-16LE)存储

BLOB.该值是一个数据块,与输入时完全相同

请更改您的创建数据库语法,如下所示:

private static final String db_createorder = "create table  if not exists "
      + TABLE_ORDER + "("
      + ORDER_ID +" integer primary key autoincrement, "
      + ORDER_DATE + " integer, "
      + NOTES + " text not null, "
      + OUTLET_ID + " integer not null, " +
      "foreign key ("+ OUTLET_ID +") references "+TABLE_OUTLET+"("+ OUTLET_ID +"));";

private static final String db_createorderdtl = "create table  if not exists "
      + ORDER_DTL + "("
      + ORDER_ID +" integer, "
      + COLUMN_ID+ " integer not null, "
      + QUANTITY + " **** not null," +
      " foreign key ("+ORDER_ID+") references "+TABLE_ORDER+"("+ORDER_ID+"),"+
      " foreign key ("+COLUMN_ID+") references "+TABLE_NAME+"("+COLUMN_ID+"), "+
      "primary key  ("+ORDER_ID+"," +COLUMN_ID+ "));";
**数量可以是整数、实数或文本。我不知道你的应用程序。因此,请根据您的申请作出决定

注意:无需按顺序插入ID,当数据库中有行插入时,它将自动递增

有关详细信息,请查看以下链接:


这些字段的类型是什么?订单ID、订单日期、备注和门店ID?粘贴您的创建数据库代码。@Zohrakan,我已经粘贴了我创建的数据库代码谢谢,这对我帮助很大。我同意你们的看法,但我的应用程序应该被发送到服务器上,我的老板说,若你们把时间记录为主键(它是唯一的,每秒钟都在变化),那个将比你们在id上使用自动递增更好。所以我尝试了。
private static final String db_createorder = "create table  if not exists "
      + TABLE_ORDER + "("
      + ORDER_ID +" integer primary key autoincrement, "
      + ORDER_DATE + " integer, "
      + NOTES + " text not null, "
      + OUTLET_ID + " integer not null, " +
      "foreign key ("+ OUTLET_ID +") references "+TABLE_OUTLET+"("+ OUTLET_ID +"));";

private static final String db_createorderdtl = "create table  if not exists "
      + ORDER_DTL + "("
      + ORDER_ID +" integer, "
      + COLUMN_ID+ " integer not null, "
      + QUANTITY + " **** not null," +
      " foreign key ("+ORDER_ID+") references "+TABLE_ORDER+"("+ORDER_ID+"),"+
      " foreign key ("+COLUMN_ID+") references "+TABLE_NAME+"("+COLUMN_ID+"), "+
      "primary key  ("+ORDER_ID+"," +COLUMN_ID+ "));";