通讯录三层结构开发总结

8 篇文章 0 订阅

通讯录三层结构开发

所遇问题汇集:

1.三层间关系如何,在项目中如何引用。

答:本项目分为MyAddBookUI  、 AddBookBLL 、AddBookDAL 三层结构。

AddBookDAL -----> AddBookBLL -----> MyAddBookUI  

 

2.Picture控件如何以控件大小来显示图像

答:

string strImageFileName; //存储图像路径所用

 OpenFileDialog file1 = new OpenFileDialog();

 file1.Filter = "(图片文件)|*.jpg;*.png;*.jpeg";

 if (file1.ShowDialog() == DialogResult.OK)

  {

//pictureBox1 是picture控件名

     pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;

     pictureBox1.Image = Image.FromFile(file1.FileName);

     strImageFileName = file1.FileName;

  }

 

3.窗体间数据如何进行通信

答:1.通过构造函数中带入参数(变量、控件等)、甚至整个窗体

2.事件和委托,,,,,这个我没弄懂,本项目没用

 

4.如何将图片存入、取出mysql数据库

答:考虑到将真个图片存入数据库中,存储量将大,所以考虑将图片绝对路径保存到数据库中,既方便存储有方便取出。

 

5.如何解决路径存入mysql数据库中出现消失路径分隔符

答: string sql = sqlTemp.Replace("\\","\\\\");

其中如果sqlTemp内部带有”\\” ,通过转换吗,将转换为”\\\\”,因为在数据处理中,‘\\’表示‘\’,

 

6.如何将mysql中保存的图片路径取出来后,显示在DatagridviewImageColumn中

答:由于没有想到好办法,只能使用笨拙的方式解决该问题。思路如下:先从数据库中读取姓名等字段显示在Datagridview中,然后在根据读取来的数据行数,且每行中的姓名(有代表性的字段)作为查询数据库条件,读取图片路径,最后将姓名对应行的DatagridviewImageColumn的单元格中的值设置为对应路径所表示的图像。之所以分两次读取,是在试验中,如果一次性读取所要显示信息,则将会在绑定数据源的时候,全部绑定,也就是将会显示出保存图片的路径。而不能正常显示出图片的信息内容。

实例:

 //1.显?示?好?友?信?息¢

  dt = mybll.ShowFriend();

  dataGridView1.DataSource = dt;

 

  //显?示?头?像?

  strImageFileName.ImageLayout = DataGridViewImageCellLayout.Zoom;

  for (int i = 0; i < dt.Rows.Count; i++)

  {

       DataRow drtemp = dt.Rows[i];

       DataTable dttemp;

 

       dttemp = mybll.SelectFriend(dt.Rows[i]["strName"].ToString());

 

       drtemp = dttemp.Rows[0];

 

       if (drtemp["strImageFileName"].ToString() !=null)

       {

           dataGridView1.Rows[i].Cells[0].Value = Image.FromFile(drtemp["strImageFileName"].ToString());

       }

 

   }

 

源码及设计文档下载地址:http://download.csdn.net/detail/yaoshenjie/9583830

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值