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

客户端用户登陆后,在主界面中可以看到本单位的所有教室,我们来看一下是如何获取的:

客户端代码:

   //根据用户获取功能教室列表
        private void GetRooms(Users user)
        { 
            //把当前用户信息发送个服务器端,并获取到本用户相关的教室列表 
            RoomList roomList = newTcpConnection.SendReceiveObject<RoomList>("GetRooms", "RoomList", 5000, user);

            IList<ClassRoom>  classRomms= roomList.ClassRooms;

            listBox1.DataSource = classRomms;

            listBox1.DisplayMember = "RoomName";
            listBox1.ValueMember = "ID";
                     
        }

RoomList类 (可由protobuf.net 序列化)

 //根据单位名称获取功能室列表    [ProtoContract]    public class RoomList
    {
        [ProtoMember(1)]        public IList<ClassRoom> ClassRooms;        public RoomList() { }        public RoomList(IList<ClassRoom> rooms)
        {            this.ClassRooms = rooms;
        }
  
    }

服务器端的处理方法:

在构造函数中声明:

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

处理方法:

  private void HandleGetRooms(PacketHeader header, Connection connection, Users theUser)
        {
            IList<ClassRoom> theRooms = DoClassRoom.GetClassRoomByUserDep(theUser.Department);

            RoomList roomList = new RoomList(theRooms);            //把获取到的数据发回去
            connection.SendObject("RoomList", roomList);
        }

DoClassRoom.GetClassRoomByUserDep方法

 //根据用户单位获取单位的功能教室列表
        public static IList<ClassRoom> GetClassRoomByUserDep(string depName)
        {
            IDataReader reader = DBClassRoom.GetClassRoomByDepName(depName);            return LoadListFromReader(reader);
        }

 LoadListFromReader方法

DBClassRoom.GetClassRoomByDepName方法

 //根据单位名称获取功能教师列表

        public static IDataReader GetClassRoomByDepName(string  department)
        { 

            SqlParameterHelper sph = new SqlParameterHelper(GetWriteConnectionString(), "ClassRoom_SelectClassRoomByDepName", 1);
         
            sph.DefineSqlParameter("@Department", SqlDbType.NVarChar, 200, ParameterDirection.Input, department);            return  sph.ExecuteReader();
         

        }

相关存储过程:

CREATE PROCEDURE [dbo].ClassRoom_SelectClassRoomByDepName

@Department nvarchar(200)

AS

SELECT
        [Id],
        [RoomName],
        [DepID],
        [Department]
        
FROM
        [dbo].[ClassRoom] where [email protected]

时间: 2024-10-10 06:11:27

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

录播教室预约系统(九)-客户端部门管理员设定教室的预约规则

录播教室预约系统(九)-客户端部门管理员设定教室的预约规则 设置预约规则的客户端代码:              int stopHourInt = (int)stopHour.Value;            int stopMinuteInt = (int)stopMinute.Value;            //截止的时间             int stopTimeInt = stopHourInt * 100 + stopMinuteInt;            //提前的

录播教室预约系统(八)-客户端部门管理员增加教室

录播教室预约系统(八)-客户端部门管理员增加教室 管理员增加完成后,其他用户就可以看到多个教室了,如图: 我们看一下客户端增加教室的代码: 添加教室:             //声明一个教室实体类             ClassRoom classRoom = == = tcpConnection.SendReceiveObject<ResMessage>(, ,  (resMessage.Message == =  + 我们看一下服务器端的处理程序 构造函数中声明: //学校管理员添加

录播教室预约系统(十)-客户端部门管理员重置本单位其他人员密码

录播教室预约系统(十)-客户端部门管理员重置本单位其他人员密码 客户端代码:  //发出的数据类型为int类型  ItemID为用户对应的ID             ResMessage resMessage = tcpConnnection.SendReceiveObject<ResMessage>("ReqResetPsw", "ResResetPsw", 5000, itemID);            if (resMessage.Messa

录播教室预约系统(七)-客户端更改密码

界面如下: 客户端代码:  //用这2个属性映射新密码和旧密码             //原密码            this.currentUser.Password = textBox1.Text.Trim();             //新密码            this.currentUser.NewPassword = textBox2.Text.Trim();             //把带有密码信息的契约类 currentUser发送到服务器端,并获取返回结果     

功能教室预约系统开源下载(c#源码)

这个功能教室预约系统是帮朋友做的,最近没事整理出来,供大家参考,本系统为CS结构,服务器端客户端程序. 数据基于mssql2005  .net2.0版本 通讯框架为networkcomms2.3.1 录播教室预约系统序言 录播教室预约系统(一)-数据库表 录播教室预约系统(二)-服务器端与数据库的交互 录播教室预约系统(三)-DepTable表[普通表] 录播教室预约系统(四)-ClassRoom表[带有外键的表] 录播教室预约系统(五)-用户登陆 录播教室预约系统(六)-注册新用户 录播教室预

录播教室预约系统序言

大概一年多年前吧,朋友让我帮他做一个预约系统,当时刚好在学习networkcomms.net的2.3.1版本(本人当时已购买商业版),正好想测试一下networkcomms.net通讯框架的稳定性,于是便开发了此预约系统,基于networkcomms2.3.1 .部署后,系统非常的稳定,平时的cpu占有率非常的低,很少有达到5%以上的情况,当然用户数也并不多,并发数最多大概100左右,没有出现过宕机等情况. 下面将会写一系列文章,来介绍录播教室预约系统的开发,诸位朋友可以了解如何基于networ

录播教室预约系统(四)-ClassRoom表[带有外键的表]

ClassRoom是与教室信息相关的表,包含教室的名称 这个表比前面介绍的DepTable表稍微复杂点,他有一列DepID 这列是与DepTable表中的ID相对应的的. 有了DepID这一列,我们就可以根据DepID 获取某单位的所有教室. 我们暂时把DepID这一列叫做外键列吧.对于拥有外键列的表,仍然可以用我们的codesmith模板生成相关的存储过程和类.有的时候我们希望能够以外键为参数查找相关的数据, 所以在对应的codesmith模板中增加了以外键为参数查找和以外键为参数自动分页查找

录播教室预约系统(六)-注册新用户

预约系统中,新用户可以自己注册,然后管理员开通. 注册界面如下: 客户端新用户注册代码:       button1_Click((txtUserID.Text.Trim ()==|| txtUserName.Text.Trim ()=== ==== = newTcpConnection.SendReceiveObject<ResMessage>(, ,  (resMessage.Message ==  + 服务器端的相关处理代码: 构造函数中声明:   //注册新用户            

录播教室预约系统(五)-用户登陆

客户端登陆界面如下: 客户端代码:                    Program.cs 中                    NetworkComms.IgnoreUnknownPacketTypes = =  ConnectionInfo(, =                     MainForm mainForm =                      frmLogin loginForm =                       (loginForm.Show