|
阅读:1801回复:8
[求助]请问:关于 SearchExpression 的问题!<P>CMoLayers layers; CMoMapLayer layer; CMoRecordset recs; CString expression; </P> <P>layers = m_CtrlMap.GetLayers(); layer = layers.Item(COleVariant(TEXT("公交线路"))); expression = ""; recs = layer.SearchExpression( expression );</P> <P>long lRecordCnt; lRecordCnt = recs.GetCount();</P> <P>此时lRecordCnt = 4,结果正确。</P> <P>以上代码改为: expression = "(线路编号 = 304 )"; // "公交线路"表中"线路编号"字段类型为long,其中一条记录的该字段值为304。 recs = layer.SearchExpression( expression );</P> <P>long lRecordCnt; lRecordCnt = recs.GetCount();</P> <P>此时lRecordCnt = -1,请问我要查找“线路编号”为304的所有记录该如何写?</P> <P>谢谢!</P> |
|
|
1楼#
发布于:2005-01-09 23:25
expression = "(线路编号 = 304 )";——〉expression = "线路编号 = 304 ";试试
|
|
|
2楼#
发布于:2005-01-10 10:57
我也遇到过这种情况。
但是我跳开走了。好像如果searchexpression把所有记录都取出来的话,就对 如果只取出就是-1,无论你取哪条记录。不知道为什么?!帮顶 |
|
|
3楼#
发布于:2005-01-11 03:34
<P>表达式错误!</P>
|
|
|
4楼#
发布于:2005-01-13 09:42
<P>我有这样的代码,你参照它加上分组命令看看.</P>
<P>SelectRd = Initi.Lline.SearchExpression("End = '"+LBegin.ToString()+"' ORDER BY End ASC"); </P> |
|
|
5楼#
发布于:2005-01-13 15:58
<P>大3的时候学过C#,我觉得这个表达式有问题,『 "公交线路"表中"线路编号"字段类型为long,其中一条记录的该字段值为304。』这应该是字段的类型不匹配,你可以试一下强制类型转换。转换前现看看数据库中long,到C# 中变成什么了。(我以前碰到过的C#会把smallint变成byte的)</P><P>还有我刚学Mo,我现在有一个项目Gis主要考我做,我以前是做Mis的,没什么经验,如果希望那位有经验的仁兄帮我一下</P>
|
|
|
6楼#
发布于:2005-01-16 21:05
<TABLE fixed; WORD-BREAK: break-all" width="90%" border=0><TR><TD 9pt; LINE-HEIGHT: 12pt" width="100%"><P>数字型字段: <B></B>
expression = "线路编号 = 304 ";</P><P>字符型字段:</P></TD></TR></TABLE>expression = "线路编号 = '304 ' "; |
|
|
7楼#
发布于:2005-01-24 10:31
究竟怎么回事??
|
|
|
8楼#
发布于:2005-01-25 18:08
<P>构造的Sql语句在分析器中测试一下就可以了。如果成功,那么就一定,否则就有可能出现问题。</P>
|
|
|