WPF修改图片

开发工具与关键技术: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);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值