如:查询“空调快速”
Select * From [TrainType] Where [TypeName] = ‘空调快速’
可以获得 Kong.ao(视图名称, 对应的是 [Kong.ao] 视图), KSY(字段), KSR(字段),
KSYw(字段), KSRw(字段)
第二步: 通过第一步我们知道从 [Kong.ao] 视图可以获得数据,我们要做得就是把
[Kong.ao] 视图的全部数据放入程序缓存(SQL Service 也可以不缓存数据,直接使用储存过
程查询,另外在缓存内做查询速度非常快,建议 SQL Service 和其他数据库用户也通过数据
缓存提高查询速度。缓存可以是程序启动的时候就把 TrainType 表和 KongTiao,PuTong 二个
视图的全部数据放入缓存)。
第三步:通过公里数[S] = 开始 , [E] 结束 范围查询缓存中的 [Kong.ao] 表(由 Kong.ao 视
图创建)
"Select * From [KongTiao] Where [S] <= " & CStr(公里) & " AND " & "[E] >= " & CStr(公里)
这样就得到一行数据。
然后用第一步得到的 KSY(字段), KSR(字段), KSYw(字段), KSRw(字段)对应得到:
硬座,软座,硬卧,软卧价格。
注意列车不一样,视图名称和字段名称也不一样。
.NET 开发示例(ACCESS 数据库),如果使用 SQL Service 可以不缓存数据而直接通过储存过
程查询:
一.把数据全部获取后放入 DataSet 进行缓存,在内存里计算速度是很快的。DataSet 包含
了一个 TrainType 表,KongTiao 和 PuTong 二个视图的全部数据
Public Shared Function trainKm() As DataSet '获得时刻价格表
Dim cacheName As String = "TrainKmDataSet1"
Dim ds As DataSet = CType(HttpContext.Current.Cache(cacheName), DataSet)
If ds Is Nothing Then
Dim nDs As DataSet = New DataSet("TrainKm")
Using Conn As New OleDbConnection(DatabaseClass.KM_DbConnectionString)
Dim Cmd1 As OleDbCommand = New OleDbCommand("SELECT * FROM
[KongTiao] ", Conn)
Dim Sda1 As New OleDbDataAdapter(Cmd1)
Sda1.Fill(nDs, "KongTiao") '空调列车视图数据
Dim Cmd2 As OleDbCommand = New OleDbCommand("SELECT * FROM [PuTong]
", Conn)
Dim Sda2 As New OleDbDataAdapter(Cmd2)
Sda2.Fill(nDs, "PuTong") '普通列车视图数据
Dim Cmd3 As OleDbCommand = New OleDbCommand("SELECT * FROM
[TrainType] ", Conn)