您的位置:首页 > 其它

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

2015-02-08 21:08 453 查看
界面如下:



客户端代码:

//用这2个属性映射新密码和旧密码
//原密码
this.currentUser.Password = textBox1.Text.Trim();
//新密码
this.currentUser.NewPassword = textBox2.Text.Trim();

//把带有密码信息的契约类 currentUser发送到服务器端,并获取返回结果
ResMessage resMessage = newTcpConnection.SendReceiveObject<ResMessage>("ChangePassword", "ResChangePassword", 5000, this.currentUser);

if (resMessage.Message == "操作成功")
{
MessageBox.Show("密码更新成功");
}
else
{
MessageBox.Show("出现错误,错误原因为:" + resMessage.Message);
}


服务器端代码:

在构造函数中声明更改密码的处理方法:

//用户更改密码

NetworkComms.AppendGlobalIncomingPacketHandler<Users>("ChangePassword", HandleChangePassword);


服务器端的处理方法:

private void HandleChangePassword(PacketHeader header, Connection connection, Users theUser)
{
//首先从数据库中获取相应的用户
Users currentUser = DoUsers.GetUserByID(theUser.UserID);

ResMessage resMessage = new ResMessage();

resMessage.Message = "出现未知错误";
//判断原密码是否正确
if (currentUser.Password == theUser.Password)
{
//如果原密码正确,则设置新密码
currentUser.Password = theUser.NewPassword;

DoUsers.Save(currentUser);

resMessage.Message = "操作成功";
}
else
{
resMessage.Message = "原密码不正确";

}

//把获取到的数据发回去
connection.SendObject("ResChangePassword", resMessage);
}


数据库操作类:





public class DoUsers
{

#region Private Methods

/// <summary>
/// Gets an instance of Users.
/// </summary>
/// <param name="id"> id </param>
public  static Users GetUsers(
int id)
{
using (IDataReader reader = DBUsers.GetOne(
id))
{
return PopulateFromReader(reader);
}

}

private static Users PopulateFromReader(IDataReader reader)
{
Users Users = new Users();
if (reader.Read())
{
Users.Id = Convert.ToInt32(reader["Id"]);
Users.UserID = reader["UserID"].ToString();
Users.Name = reader["Name"].ToString();
Users.Password = reader["Password"].ToString();
Users.Declaring = reader["Declaring"].ToString();
Users.Status = Convert.ToInt32(reader["Status"]);
Users.IsMale = Convert.ToBoolean(reader["IsMale"]);
Users.UserLevel = Convert.ToInt32(reader["UserLevel"]);
Users.Enabled = Convert.ToBoolean(reader["Enabled"]);
Users.RegisterTime = Convert.ToDateTime(reader["RegisterTime"]);
Users.LastLoginTime = Convert.ToDateTime(reader["LastLoginTime"]);
Users.DepID = Convert.ToInt32(reader["DepID"]);
Users.Department = reader["Department"].ToString();

}
return Users;
}

/// <summary>
/// Persists a new instance of Users. Returns true on success.
/// </summary>
/// <returns></returns>
private static bool Create(Users Users)
{
int newID = 0;

newID = DBUsers.Create(
Users.UserID,
Users.Name,
Users.Password,
Users.Declaring,
Users.Status,
Users.IsMale,
Users.UserLevel,
Users.Enabled,
Users.RegisterTime,
Users.LastLoginTime,
Users.DepID,
Users.Department);

Users.Id = newID;

return (newID > 0);

}

/// <summary>
/// Updates this instance of Users. Returns true on success.
/// </summary>
/// <returns>bool</returns>
private static bool Update(Users Users)
{

return DBUsers.Update(
Users.Id,
Users.UserID,
Users.Name,
Users.Password,
Users.Declaring,
Users.Status,
Users.IsMale,
Users.UserLevel,
Users.Enabled,
Users.RegisterTime,
Users.LastLoginTime,
Users.DepID,
Users.Department);

}

#endregion

#region Public Methods

/// <summary>
/// Saves this instance of Users. Returns true on success.
/// </summary>
/// <returns>bool</returns>
public static bool Save(Users Users)
{
if (Users.Id > 0)
{
return Update(Users);
}
else
{
return Create(Users);
}
}

#endregion

#region Static Methods

/// <summary>
/// Deletes an instance of Users. Returns true on success.
/// </summary>
/// <param name="id"> id </param>
/// <returns>bool</returns>
public static bool Delete(
int id)
{
return DBUsers.Delete(
id);
}

/// <summary>
/// Gets a count of Users.
/// </summary>
public static int GetCount()
{
return DBUsers.GetCount();
}

private static IList<Users> LoadListFromReader(IDataReader reader)
{
IList<Users> UsersList = new List<Users>();
try
{
while (reader.Read())
{
Users Users = new Users();
Users.Id = Convert.ToInt32(reader["Id"]);
Users.UserID = reader["UserID"].ToString();
Users.Name = reader["Name"].ToString();
Users.Password = reader["Password"].ToString();
Users.Declaring = reader["Declaring"].ToString();
Users.Status = Convert.ToInt32(reader["Status"]);
Users.IsMale = Convert.ToBoolean(reader["IsMale"]);
Users.UserLevel = Convert.ToInt32(reader["UserLevel"]);
Users.Enabled = Convert.ToBoolean(reader["Enabled"]);
Users.RegisterTime = Convert.ToDateTime(reader["RegisterTime"]);
Users.LastLoginTime = Convert.ToDateTime(reader["LastLoginTime"]);
Users.DepID = Convert.ToInt32(reader["DepID"]);
Users.Department = reader["Department"].ToString();
UsersList.Add(Users);

}
}
finally
{
reader.Close();
}

return UsersList;

}

//客户端获取用户信息,只返回ID,UserID, UserName,RegisterTime
private static IList<Users> LoadPartDataListFromReader(IDataReader reader)
{
IList<Users> UsersList = new List<Users>();
try
{
while (reader.Read())
{
Users Users = new Users();
Users.Id = Convert.ToInt32(reader["Id"]);
Users.UserID = reader["UserID"].ToString();
Users.Name = reader["Name"].ToString();

Users.RegisterTime = Convert.ToDateTime(reader["RegisterTime"]);

UsersList.Add(Users);

}
}
finally
{
reader.Close();
}

return UsersList;

}

/// <summary>
/// Gets an IList with some instances of Users.
/// </summary>
public static IList<Users> GetTopList(
int id)
{
IDataReader reader = DBUsers.GetTopList(
id);

return LoadListFromReader(reader);

}

/// <summary>
/// Gets an IList with all instances of Users.
/// </summary>
public static IList<Users> GetAll()
{
IDataReader reader = DBUsers.GetAll();
return LoadListFromReader(reader);

}

//根据用户单位获取本单位所有用户的数据

public static IList<Users> GetUserByDep(string department)
{
IDataReader reader = DBUsers.GetListByDep(department);

return LoadPartDataListFromReader(reader);
}

//根据用户单位获取本单位所有用户的数据  新注册的

public static IList<Users> GetNewUserByDep(string department)
{
IDataReader reader = DBUsers.GetNewListByDep(department);

return LoadPartDataListFromReader(reader);
}

/// <summary>
/// Gets an IList with page of instances of Users.
/// </summary>
/// <param name="pageNumber">The page number.</param>
/// <param name="pageSize">Size of the page.</param>
/// <param name="totalPages">total pages</param>
public static IList<Users> GetPage(int pageNumber, int pageSize, out int itemCount)
{
itemCount = 1;
IDataReader reader = DBUsers.GetPage(pageNumber, pageSize, out itemCount);
return LoadListFromReader(reader);
}

/// <summary>
/// Gets an IList with page of instances of Users.
/// </summary>
/// <param name="pageNumber">The page number.</param>
/// <param name="pageSize">Size of the page.</param>
/// <param name="itemCount">total items</param>
public static IList<Users> GetListPage(int pageNumber, int pageSize, int pid, out int itemCount)
{
itemCount = 1;
IDataReader reader = DBUsers.GetListPage(pageNumber, pageSize, pid, out itemCount);
return LoadListFromReader(reader);
}

#endregion

#region 新加方法

public static Users GetUserByID(string userID)
{
using (IDataReader reader = DBUsers.GetOneByUserID(userID))
{

Users theUser = PopulateFromReader(reader);

return theUser;

}

}
#endregion

}


数据库操作类DoUsers
客户端收到服务器端返回的消息,弹出提示窗口:



【开源下载】基于TCP网络通信的即时聊天系统(IM系统)(c#源码)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: