热门IT资讯网

录播教室预约系统(十一)-客户端获取本单位的所有教室

发表于: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 IList Cla***ooms;        public RoomList() { }        public RoomList(IList rooms)        {            this.Cla***ooms = rooms;        }      }

服务器端的处理方法:

在构造函数中声明:

  //根据用户的单位,获取所有功能教室 列表            NetworkComms.AppendGlobalIncomingPacketHandler("GetRooms", HandleGetRooms);

处理方法:

  private void HandleGetRooms(PacketHeader header, Connection connection, Users theUser)        {            IList theRooms = DoCla***oom.GetCla***oomByUserDep(theUser.Department);            RoomList roomList = new RoomList(theRooms);            //把获取到的数据发回去            connection.SendObject("RoomList", roomList);        }

DoCla***oom.GetCla***oomByUserDep方法

 //根据用户单位获取单位的功能教室列表        public static IList GetCla***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


0