
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:申请域名、雅安服务器托管、营销软件、网站建设、月湖网站维护、网站推广。
客户端用户登陆后,在主界面中可以看到本单位的所有教室,我们来看一下是如何获取的:
客户端代码:

//根据用户获取功能教室列表
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 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) AS SELECT [Id], [RoomName], [DepID], [Department] FROM [dbo].[Cla***oom] where Department=@Department
