开发工具与关键技术:Visual Studio
撰写时间:2019年07月08日
在前面我写了新增上传图片,现在我写修改图片,逻辑和思路是差不多的
一、先在数据库中写修改的存储过程,这里的修改代码跟以前的修改存储过程一样,修改什么写什么没什么特别的。当然,首先还是要判断需要修改的数据在表中存不存在,修改的ID不能与之前的ID一样。数据库的存储过程的代码如下:
二、再回到服务端service里编写代码,直接在修改里面获取到数据库的存储过程的代码,图片亦是如此。在修改这里,我们仍然需要声明变量来接收图片,所以我们要写两个方法。(注意:这里的图片是byte[]类型)。在服务器service配置好引用,客户端client直接调用
//声明变量接收=>文件名字
string strPatientPhotos = UWenJianLiuZhuanHuanLuJing(bytepicture, strOldLuJing, strTxtLuJing);
三、我们需要把文件流转换为路径
public string UWenJianLiuZhuanHuanLuJing(byte[][] byteTuPian, string strOldLuJing, string strTxtLuJing)
第一步:我们需要判断有没有文件image,如果没有,我们需要创建一个名叫image的文件夹装图片
string strPath = AppDomain.CurrentDomain.BaseDirectory + "image\\";
if (!Directory.Exists(strPath))
{ Directory.CreateDirectory(strPath); }
第二步:需要判断所有修改图片的可能性(就是判断他以前有没有图片,有,我们该怎么做,没有又该怎么做)
判断的代码如下:
//第一步判断:新增有没有图片
if (strOldLuJing == string.Empty)
{
// 第二步:现在有没有选择图片
if (byteTuPian.Length != 0 && strTxtLuJing != string.Empty)
{
// 新增文件
strNewLuJing = WenJianLiuZhuanHuanLuJing(byteTuPian);
}
}
else
{
// 第三步:以前有图片,现在新增图片(替换:删掉以前,新增现在)
if (byteTuPian.Length != 0 && strTxtLuJing != string.Empty)
{
// 获取原来的图片
string strOldUrl = strPath + strOldLuJing;
// 删除文件
File.Delete(strOldUrl);
// 保存现在新的图片
strNewLuJing = WenJianLiuZhuanHuanLuJing(byteTuPian);
}
// 第四步:以前有图片,现在没有(删除:删除以前的图片)
else if (byteTuPian.Length == 0 && strTxtLuJing == string.Empty)
{
// 获取原来的图片
string strOldUrl = strPath + strOldLuJing;
// 删除文件
File.Delete(strOldUrl);
}
}
return strNewLuJing;
四、最后在客户端client添加服务器service的引用。我们修改的页面和新增的页面是一样的
第一步:判断页面的数据都不能为空
第二步:获取页面的数据
第三步:调用服务器保存的方法
int intCount = myClient.btn_Affirm_Click_UpdateStaff(intas_employee_type_id,intas_work_status_id, intas_branch_id, strstaff_name,strstaff_number, intas_gender_id, strage, strid_card, dtmbirth, strphone_number, straddress, stre_mail, dtmentry_date, dtmdeparture_date, bloperator_no, bytWenJian, strnote, intstaff_id, strOldLuJing, strTxtLuJing);
第四步:根据保存做提示
if (intCount > 0)
{
MessageBoxResult dr = MessageBox.Show("修改【" + strstaff_number + "】员工信息!", "系统提示", MessageBoxButton.OKCancel, MessageBoxImage.Warning);
if (dr == MessageBoxResult.OK)
{
//关闭当前窗口
this.Close();
}
}
else if (intCount == -1)
{
MessageBox.Show("修改员工信息重复!", "系统提示", MessageBoxButton.OK, MessageBoxImage.Warning);
}