(续)SqlHelper+三层架构 +例子1)复习创建客户和三层的知识+、(例子2)项目初始框架(HRMSys)

八:员工表的设计(数据绑定) DisplayMemberPath=" "   13401089876
T_Department Id Name IsStopped
T_Employee  //很多项目不建外键
员工表的增删改查
EditUI
ListAll()GetById(),Update(),Insert()
EditingId;IsAddNew;
window_Load()
{
 
 新增(默认值的设定),修改判断
 myGrid.DataContent=...
 
}
txtSave_Click()
{
  判断有无空字符串
  新增()
  修改()
}
ListUI
window_Load(){}
private void LoadData(){}
           //把老师的代码看懂了,只理解了10%

bool IsOK=true;//数据检验是否通过,每个控件只能投反对票
if(txtName.TRext.Length<=0)
{
 IsOK=false;
  txtName.Background=Brushes.Red;     //杨中科:bbs.itheima.com,abount521@163.com,某某申请认证VIP
}
//检验是否有空字符串。(反射)
private void CheckTextboxNotEmpty(ref bool isOK,params TextbOX[] TEXTBOXS){}
{
  foreach(TextBox txtBox in TEXTBOXS))
 {
   if(txtBox.Length<=0)
   {
     isOK=false;
     txtBox.Background=Brushes.Red;
   }
   else
   {
    txtBox.Background=null;
   }
 }
}

九、员工照片的处理
 (1)照片的二进制数据保存在DB
 (2)把img存放至服务器中,img中存放于DB中
photo: image类型
在ado.net 对应byte[],放二进制的。
btnChoosePhoto_Click()
{
 OpenFileDialog ofd=new....();
 ofd.Filter="....";
 if(ofd.ShowDilog()==true)
 {
  string filename=.....;
  Employee employee=new...;
  employee.Photo=File.ReadAllBytes(filename);//读取文件的二进制数据
  imgPhoto.Source=new BitmapImage(new uri(filename));
 }
}
照片在Load时就显示了:
MemoryStream stream=new MemoryStream (emp.Photo);
BitmapImage bmpImg=new BitmapImage();
bmpImg.StreamSource=stream;
imgPhoto.Source=bmpImg

十、摄像头给员工拍照:
第三方开发包,开源组件(WPFMediaKit.dll)
(1)在xaml中添加类
(2)VideoCaptureElement显示预览的画面
<CheckBox name="cb"></CheckBox>
<wpfedia:VideoCaptureElement name="vce">

</wpfedia:VideoCaptureElement>
<button name="btnCapture"></button>
window_Load()
{
 //获得摄像头;
 cb.ItemSource=MultimediaUtil.VideoInputNames;
if(MultimediaUtil.VideoInputNames>0)
{
 cb.SelectedIndex=0;
}
else
{
没有摄像头
}
}

cb_SelectionChangeed()
{
vce.VideoCaptureSource=(string)cb.selectedItem;
}

btnCapture_Click()
{
把控件的内容抓取出来
}
拍的图片的二进制流

 

 


 未完待续。。。。。。

 

posted @ 2013-03-29 20:42  javawebsoa  Views(193)  Comments(0Edit  收藏  举报