数据表中有3个属性,id name cityid
读取其中一条记录的时候,只有name和cityid,id的属性读取不出来。
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'
});
是不是这段代码有问题,求大手帮忙看一下。
问题补充:
Wind_ZhongGang 写道
place.cityid place.name 哪里去读了id?
那个写在下面的,后来又很奇怪的能读出来了。。。
cm这么定义
var cm=new Ext.grid.ColumnModel([new Ext.grid.RowNumberer(),sm,{
header:'编号',dataIndex:'id',sortable:true
},{
header:'地区',dataIndex:'name',sortable:true
},{
header:'城市编号',dataIndex:'cityid',mapping:4,sortable:true
}]);
后台sql代码这么写
SELECT p.id,p.name,p.cityid,c.name from place p,city c
WHERE p.cityid=c.id
]]>
SELECT p.id,p.name,p.cityid,c.name from place p,city c
WHERE p.name=#{name} AND p.cityid=c.id
]]>
在页面上还是显示cityid的值,无法显示city表中的name属性,是不是代码写的有问题
问题补充:
Wind_ZhongGang 写道
SELECT p.id,p.name,p.cityid,c.name from place p,city c
WHERE p.cityid=c.id 是ON 不是WHERE
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,city c
WHERE p.name=#{name} ON p.cityid=c.id
]]>
如果改成这样,数据就读取不出来了啊,store是空的
问题补充:
caizi12 写道
引用
SELECT p.id,p.name,p.cityid,c.name from place p,city c
WHERE p.cityid=c.id 是ON 不是WHERE
on的话是用join关联时候才用的。像这种直接查两表,只能用where的。
你这里面有p.name和c.name 两个名字一样,你又没有进行as 肯定会出错,读不出来数据。
as是什么。。数据库学的不深入,不太知道一些术语。。
问题补充:
caizi12 写道
[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
as 重命名的意思,比如 p.id as id; as你也可以省略,比如 p.id id,p.name pName,p.cityid 城市id (也可以写中文)
貌似还是不行,按照这么写,place表里的name属性就显示空的
问题补充:
Wind_ZhongGang 写道
试过我才说的那种没有?
试过啦。。和没改之前没啥区别。。显示的还是cityid
问题补充:
caizi12 写道
那你只能调试一下了,先把sql放在查询分析器做查询,如果有数据的话,你进入debuge进入调试模式,看看刚查询后返回的数据集里面name属性有没有值,确定好到底是哪个地方把值传丢了。
debug用的还不是很熟练,看了一下午,也没看出是哪里的问题,发现它只是place的name无法在页面上显示出来,查询的时候还是能查询出结果来的。
问题补充:
caizi12 写道
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里面的属性字段到底是什么。写程序会调试是少不了的。
在插入数据的时候提示cityid为空,用debug看的时候只有id那一栏有数据,name,cityid,cityname都为空,这个是为什么。