| 发表于:2007-06-07 20:11:162楼 得分:0 |
arraylist tlist = new arraylist(); // 从数据库中读出线记录信息 string strcmd = "select trainlineid, starttime, flags from hh_line where dm = ' " + map.m_ddt.dm + " ' order by starttime "; dbdatareader dbreader = map.dbo.db_EXECutereader(strcmd); if (dbreader == null) return; while (dbreader.read()) { line line = new tdx(map); line.tdxid = (int)dbreader.getdecimal(0); line.starttime = dbreader.getdatetime(1); line(dbreader.isdbnull(2)) line.termpointtype = trainlinetermpointtype.deliver ¦ trainlinetermpointtype.surrender; else line.termpointtype = (trainlinetermpointtype)(int32)dbreader.getdecimal(2); line.tdxpoints = new arraylist(); line.etrainkind = trainkindtype.hwlc; line.etraindirecttype = trainlinedirecttype.xx; tlist.add(line); } dbreader.close(); foreach (line line in tlist) { // 从库中取出该线上的点信息 strcmd = "select xbid, stationname, timeoffset, " + " cc from hh_point where trainlineid = " + line.tdxid + " order by no "; dbreader = map.dbo.db_EXECutereader(strcmd); if (dbreader == null) return; while (dbreader.read()) { point point = new tdxpoint(); point.tdxid = line.tdxid; point.xbid = (int32)dbreader.getdecimal(0); point.stationname = dbreader.getstring(1); point.timeoffset = (int32)dbreader.getdecimal(2); point.strcc = dbreader.getstring(3); line.points.add(tp); // 当是线上第一点时 if (line.points.count == 1) { line.etrainkind = trainkindinfo.gettrainkind(point.strcc); line.etraindirecttype = trainline.getdirectfromcc(point.strcc); } } dbreader.close(); 注: 我这种操作方式在oracle下非常是非常快的. | | |
|