录播教室预约系统(十一)-客户端获取本单位的所有教室
发表于:2024-11-24 作者:热门IT资讯网编辑
编辑最后更新 2024年11月24日,客户端用户登陆后,在主界面中可以看到本单位的所有教室,我们来看一下是如何获取的:客户端代码: //根据用户获取功能教室列表 private void GetRooms(Users u
客户端用户登陆后,在主界面中可以看到本单位的所有教室,我们来看一下是如何获取的:
客户端代码:
//根据用户获取功能教室列表 private void GetRooms(Users user) { //把当前用户信息发送个服务器端,并获取到本用户相关的教室列表 RoomList roomList = newTcpConnection.SendReceiveObject("GetRooms", "RoomList", 5000, user); IList cla***omms= roomList.Cla***ooms; listBox1.DataSource = cla***omms; listBox1.DisplayMember = "RoomName"; listBox1.ValueMember = "ID"; }
RoomList类 (可由protobuf.net 序列化)
//根据单位名称获取功能室列表 [ProtoContract] public class RoomList { [ProtoMember(1)] public IListCla***ooms; public RoomList() { } public RoomList(IList rooms) { this.Cla***ooms = rooms; } }
服务器端的处理方法:
在构造函数中声明:
//根据用户的单位,获取所有功能教室 列表 NetworkComms.AppendGlobalIncomingPacketHandler("GetRooms", HandleGetRooms);
处理方法:
private void HandleGetRooms(PacketHeader header, Connection connection, Users theUser) { IListtheRooms = DoCla***oom.GetCla***oomByUserDep(theUser.Department); RoomList roomList = new RoomList(theRooms); //把获取到的数据发回去 connection.SendObject("RoomList", roomList); }
DoCla***oom.GetCla***oomByUserDep方法
//根据用户单位获取单位的功能教室列表 public static IListGetCla***oomByUserDep(string depName) { IDataReader reader = DBCla***oom.GetCla***oomByDepName(depName); return LoadListFromReader(reader); }
LoadListFromReader方法
DBCla***oom.GetCla***oomByDepName方法
//根据单位名称获取功能教师列表 public static IDataReader GetCla***oomByDepName(string department) { SqlParameterHelper sph = new SqlParameterHelper(GetWriteConnectionString(), "Cla***oom_SelectCla***oomByDepName", 1); sph.DefineSqlParameter("@Department", SqlDbType.NVarChar, 200, ParameterDirection.Input, department); return sph.ExecuteReader(); }
相关存储过程:
CREATE PROCEDURE [dbo].Cla***oom_SelectCla***oomByDepName@Department nvarchar(200)ASSELECT [Id], [RoomName], [DepID], [Department] FROM [dbo].[Cla***oom] where Department=@Department