Android Can';t将多项目Listview插入Sqlite
我是初学者Android开发者。我需要一些帮助。当我尝试将数据插入2表order和orderdtl时。orderdtl正在从EntryTO.java上的多项目listview获取数据。没有更改,没有错误,仍然无法插入。这是我的数据库: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
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+ "));";