读取数据库数据的时候,只显示其中2个属性

数据表中有3个属性,id name cityid
读取其中一条记录的时候,只有name和cityid,id的属性读取不出来。
[code="java"] var comboCity=new Ext.form.ComboBox({
fieldLabel:'城市',
emptyText:'请选择',
autowidth:true,
selectOnFocus:true,
forceSelection: true,
mode:'local',
triggerAction:'all',
//triggerAction:'query',
name:'place.cityid',
id:'cityid',
store:citystore,
valueField:'id',
displayField:'name',
hiddenName:'cityid'
});

var comboPlace=new Ext.form.ComboBox({
    fieldLabel:'地区',
    emptyText:'请选择',
    autowidth:true,
    selectOnFocus:true,
    forceSelection: true,       
    mode:'local',
    triggerAction:'all',
    //triggerAction:'query',
    name:'place.name',
    id:'name',
    store:placestore,       
    //valueField:'id',
    displayField:'name',
    hiddenName:'name'
});[/code]

是不是这段代码有问题,求大手帮忙看一下。

插入时候空,值没取到呗。

你配置一下ibatis把sql打印出来,看看执行查询操作的sql。

要确保sql中的名称和你对像实体类中的属性一致。

place.cityid place.name 哪里去读了id?

SELECT p.id,p.name,p.cityid,c.name from place p,city c

WHERE p.cityid=c.id 是ON 不是WHERE

我发现你这sql语句还不是只有一个地方错误呢。
SELECT p.id,p.name,p.cityid,c.name from place p,city c

ON p.cityid=c.id

SELECT p.id,p.name,p.cityid,c.name from place p left join city c

ON p.cityid=c.id
应该是这样的。

[quote]SELECT p.id,p.name,p.cityid,c.name from place p,city c

WHERE p.cityid=c.id 是ON 不是WHERE
[/quote]

on的话是用join关联时候才用的。像这种直接查两表,只能用where的。

你这里面有p.name和c.name 两个名字一样,你又没有进行as 肯定会出错,读不出来数据。

[code="java]SELECT p.id as id ,p.name as pName,p.cityid as cityid,c.name cName from place p,city c

WHERE p.cityid=c.id

[/code]

as 重命名的意思,比如 p.id as id; as你也可以省略,比如 p.id id,p.name pName,p.cityid 城市id (也可以写中文)

试过我才说的那种没有?

那你只能调试一下了,先把sql放在查询分析器做查询,如果有数据的话,你进入debuge进入调试模式,看看刚查询后返回的数据集里面name属性有没有值,确定好到底是哪个地方把值传丢了。

SELECT p.id as id ,p.name as pName,p.cityid as cityid,c.name cName from place p,city c

一个sql里面出现两个name一定要重命名,一个pname 一个cname

网上找找debuge的方法,看看list里面的属性字段到底是什么。写程序会调试是少不了的。