您的位置:首页 > 其它

CurrencyManager的使用(绑定数据到控件),数据分条显示

2013-03-07 11:23 423 查看
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using 库存管理系统.Tool;
using System.Data.SqlClient;
using System.IO;

namespace 库存管理系统
{
public partial class frmMain : Form
{

private DataSet dsDept=new DataSet();//存放所有的部门信息
private DataSet dsUserType;//存放所有的用户类型信息
private DataSet dsSearchInfo = new DataSet();
private CurrencyManager manger;
public EventHandler ShowPic { get; set; }
private DataTable dtInfo=new DataTable();
private bool isBinded = false;//是否绑定过了
public frmMain()
{
InitializeComponent();
}

private void 查询ToolStripMenuItem1_Click(object sender, EventArgs e)
{
frmSearch fs = new frmSearch();
fs.ShowDialog();
}

private void frmMain_FormClosed(object sender, FormClosedEventArgs e)
{
Application.Exit();
}

private void frmMain_Load(object sender, EventArgs e)
{
toolStripStatusLabel1.Text = "欢迎您," + UserInfo.UserType + " " + UserInfo.UserName;
InitCombox();
}

private void 关于ToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show("本程序由 微笑~蓝极光 编写\r\n 库存管理系统 ver0.31","关于",MessageBoxButtons.OK);
}

private void 新增ToolStripMenuItem1_Click(object sender, EventArgs e)
{

}

private void 当前页查询ToolStripMenuItem_Click(object sender, EventArgs e)
{
panelCurSearch.Visible = true;
panelRight.Visible = false;
}

private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
{
if(DialogResult.OK == MessageBox.Show("您确定要退出吗?","提示",MessageBoxButtons.OKCancel)){
Application.Exit();

}
}

private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
string text = tvOptions.SelectedNode.Text;
switch (text)
{
case "浏览":
//列出用户的所有信息
panelCurSearch.Visible = false;
panelRight.Visible = true;
DgvShow();

break;
case "查询":
panelCurSearch.Visible = true;
panelRight.Visible = false;
break;
case "新页面查询":
frmSearch fs = new frmSearch();
fs.ShowDialog();
break;
case "新增":
break;
case "我的信息":
    panelCurSearch.Visible = true;
txtID.Text = "";
cmbDept.SelectedIndex = 0;
string Name = UserInfo.UserName;
txtName.Text = Name;
int DeptId = (int)cmbDept.SelectedValue;
ShowSearchResult();
break;
}
}

//绑定数据到控件
private void BindToText()
109         {
110             if(isBinded){//如果绑定就移除绑定
111                 txtLID.DataBindings.RemoveAt(0);
112                 txtLName.DataBindings.RemoveAt(0);
113                 cmbDept.DataBindings.RemoveAt(0);
114                 txtAge.DataBindings.RemoveAt(0);
115                 txtSalary.DataBindings.RemoveAt(0);
116                 cmbLType.DataBindings.RemoveAt(0);
117                 cmbLDept.DataBindings.RemoveAt(0);
118                 cmbLGender.DataBindings.RemoveAt(0);
119                 picBox.DataBindings.RemoveAt(0);
120             }
121             //绑定数据到控件
122             dtInfo=dsSearchInfo.Tables[0];
123             txtLID.DataBindings.Add("Text", dtInfo,"EmpId");
124             txtLName.DataBindings.Add("Text", dtInfo, "EmpName");
125             cmbDept.DataBindings.Add("SelectedValue", dtInfo, "DeptId");
126             cmbLGender.DataBindings.Add("Text", dtInfo, "EmpGender");
127             txtAge.DataBindings.Add("Text", dtInfo, "EmpAge");
128             txtSalary.DataBindings.Add("Text", dtInfo, "EmpSalary");
129             cmbLType.DataBindings.Add("SelectedValue", dtInfo, "TypeId");
130             cmbLDept.DataBindings.Add("SelectedValue", dtInfo, "DeptId");
131             //将数据库中的图片byte[] 存储到图片控件(pictureBox)的tag标签中,CurrencyManager的positionChanged事件中更新图片控件的Image,实现图片显示:
132             picBox.DataBindings.Add("Tag", dtInfo, "ImageLogo");
133
134             manger = this.BindingContext[dsSearchInfo.Tables[0]] as CurrencyManager;
135             manger.Position = 0;
136         }

//初始化combox的值
private void InitCombox()
{

cmbGender.Items.Add("不选");
cmbGender.Items.Add("男");
cmbGender.Items.Add("女");
cmbGender.SelectedIndex = 0;

dsDept = SqlHelper.ExecuteDataSet("select DeptId,DeptName from T_Department");
//绑定部门信息
cmbLDept.DataSource = SqlHelper.ExecuteDataSet("select DeptId,DeptName from T_Department").Tables[0];
cmbLDept.ValueMember = "DeptId";
cmbLDept.DisplayMember = "DeptName";
//绑定管理员类型信息
cmbLType.DataSource = SqlHelper.ExecuteDataSet("select TypeId,TypeName from T_Type").Tables[0];
cmbLType.ValueMember = "TypeId";
cmbLType.DisplayMember = "TypeName";

List<DeptNameInfo> depts = new List<DeptNameInfo>();
depts.Add(new DeptNameInfo() { DeptName ="选择部门", DeptId =-2 });
foreach (DataRow row in dsDept.Tables[0].Rows)
{
depts.Add(new DeptNameInfo() {DeptName=(string)row["DeptName"] ,DeptId=(int)row["DeptId"]});
}
cmbDept.DataSource = depts;
cmbDept.ValueMember = "DeptId";
cmbDept.DisplayMember = "DeptName";

dsUserType = SqlHelper.ExecuteDataSet("select TypeId,TypeName from T_Type");

}

private void DgvShow()
{
string sql = "select EmpId 'ID',EmpName '姓名',DeptName '部门名称',EmpGender '性别',EmpAge '年龄',EmpSalary '薪水',TypeName '用户类型' from T_Department,T_Employee,T_Type where T_Department.DeptId=T_Employee.DeptId and T_Type.TypeId=T_Employee.TypeId ";
dgvInfo.DataSource = SqlHelper.ExecuteDataSet(sql).Tables[0];
}

private void btnSearch_Click(object sender, EventArgs e)
{

ShowSearchResult();
MyShowPic(sender,e);
}

private void ShowSearchResult()
{
string ID = txtID.Text.Trim();

string Name = txtName.Text.Trim();
int DeptId = (int)cmbDept.SelectedValue;
string Gender = cmbGender.Text.Trim();
string SignId = "";
string SignDeptId = "";
string SignGender = "";

//
//控制符号
if (ID.Length < 1)
{
SignId = "!";
}
if (DeptId < 0)
{
SignDeptId = "!";
}
if (Gender == "不选")
{
SignGender = "!";
}

string Sql = "select * from T_Employee where EmpId " + SignId + "= @EmpId and DeptId " + SignDeptId + "= @DeptId and EmpGender " + SignGender + "= @EmpGender and EmpName like '%" + Name + "%' ";

dsSearchInfo = SqlHelper.ExecuteDataSet(Sql, new SqlParameter("@EmpId", ID), new SqlParameter("@DeptId", DeptId), new SqlParameter("@EmpGender", Gender));
BindToText();
217             manger.PositionChanged += MyShowPic;
218             isBinded = true;
219             ShowInfo();
}

private void btnFirst_Click(object sender, EventArgs e)
{
manger.Position = 0;
ShowInfo();
}

private void btnLast_Click(object sender, EventArgs e)
{
manger.Position = dtInfo.Rows.Count - 1;
ShowInfo();
}

private void btnPrev_Click(object sender, EventArgs e)
{
if (!isFirst())
{
manger.Position -= 1;
ShowInfo();

}
else
{
MessageBox.Show("已经到第一行!");
}
}

private void btnNext_Click(object sender, EventArgs e)
{
if (!isLast())
{
manger.Position += 1;
ShowInfo();
}
else
{
MessageBox.Show("已经到最后一行!");
}
}

private bool isLast()
{

return manger.Position >= dtInfo.Rows.Count - 1;
}

private bool isFirst()
{

return manger.Position <= 0;
}

private void ShowInfo()
{
int TotalCount=0;
int CurCount = 0;
if(dtInfo.Rows.Count>0){
TotalCount = dtInfo.Rows.Count;
}
if (manger.Position>0)
{
CurCount = manger.Position;
}
labInfo.Text = "(" + (CurCount+1) + "/" + TotalCount + ")";
}

private void 我的信息ToolStripMenuItem_Click(object sender, EventArgs e)
{
string ID = txtID.Text.Trim();

string Name = UserInfo.UserName;
txtName.Text = Name;
int DeptId = (int)cmbDept.SelectedValue;
panelCurSearch.Visible = true;
ShowSearchResult();
}

private void dgvInfo_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
{
DataGridViewCell cell= dgvInfo.CurrentRow.Cells[0];
if (cell.Value == null || ((string)(cell.Value))=="")
{
return;
}
string EmpId = (string)cell.Value;
txtID.Text = EmpId;
txtName.Text = "";
cmbGender.SelectedIndex = 0;
cmbDept.SelectedIndex = 0;
panelCurSearch.Visible = true;
panelRight.Visible = false;
ShowSearchResult();

}

//显示图片
public void MyShowPic(object sender, EventArgs e)
318         {
319             if (picBox.Tag != null && !(picBox.Tag is DBNull))
320             {
321                 byte[] imgSourse = (byte[])picBox.Tag;
322
323                 MemoryStream ms = new MemoryStream(imgSourse);
324                 picBox.Image = Image.FromStream(ms);
325                 ms.Close();
326
327             }
328             else
329             {
330
331
332             }
333
334
335         }
336
337
338
339     }
}  


图片的显示效果:(实现的下边查找之后的数据分条导航显示)

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: