录播教室预约系统(十一)-客户端获取本单位的所有教室
客户端用户登陆后,在主界面中可以看到本单位的所有教室,我们来看一下是如何获取的:
客户端代码:
//根据用户获取功能教室列表privatevoidGetRooms(Usersuser){//把当前用户信息发送个服务器端,并获取到本用户相关的教室列表RoomListroomList=newTcpConnection.SendReceiveObject<RoomList>("GetRooms","RoomList",5000,user);IList<Cla***oom>cla***omms=roomList.Cla***ooms;listBox1.DataSource=cla***omms;listBox1.DisplayMember="RoomName";listBox1.ValueMember="ID";}
RoomList类 (可由protobuf.net 序列化)
//根据单位名称获取功能室列表[ProtoContract]publicclassRoomList{[ProtoMember(1)]publicIList<Cla***oom>Cla***ooms;publicRoomList(){}publicRoomList(IList<Cla***oom>rooms){this.Cla***ooms=rooms;}}
服务器端的处理方法:
在构造函数中声明:
//根据用户的单位,获取所有功能教室列表NetworkComms.AppendGlobalIncomingPacketHandler<Users>("GetRooms",HandleGetRooms);
处理方法:
privatevoidHandleGetRooms(PacketHeaderheader,Connectionconnection,UserstheUser){IList<Cla***oom>theRooms=DoCla***oom.GetCla***oomByUserDep(theUser.Department);RoomListroomList=newRoomList(theRooms);//把获取到的数据发回去connection.SendObject("RoomList",roomList);}
DoCla***oom.GetCla***oomByUserDep方法
//根据用户单位获取单位的功能教室列表publicstaticIList<Cla***oom>GetCla***oomByUserDep(stringdepName){IDataReaderreader=DBCla***oom.GetCla***oomByDepName(depName);returnLoadListFromReader(reader);}
LoadListFromReader方法
DBCla***oom.GetCla***oomByDepName方法
//根据单位名称获取功能教师列表publicstaticIDataReaderGetCla***oomByDepName(stringdepartment){SqlParameterHelpersph=newSqlParameterHelper(GetWriteConnectionString(),"Cla***oom_SelectCla***oomByDepName",1);sph.DefineSqlParameter("@Department",SqlDbType.NVarChar,200,ParameterDirection.Input,department);returnsph.ExecuteReader();}
相关存储过程:
CREATEPROCEDURE[dbo].Cla***oom_SelectCla***oomByDepName@Departmentnvarchar(200)ASSELECT[Id],[RoomName],[DepID],[Department]FROM[dbo].[Cla***oom]whereDepartment=@Department
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。