综合查询员工和datetime.now和datetime.today区别
一:综合查询图

二:EmployeeListWindow.cs代码
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 HRMSys.DAL;
using HRMSys.Model;
using System.Data.SqlClient; namespace HYMSys.UI.EmployeeMgr
{
public partial class EmployeeListWindow : Form
{
public EmployeeListWindow()
{
InitializeComponent();
}
/// <summary>
/// 加载所有信息
/// </summary>
public EmployeeList[] load()
{
EmployeeDAL de = new EmployeeDAL(); return de.ListAll(); } /// <summary>
/// 添加员工
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void toolsb_add_Click(object sender, EventArgs e)
{
EmployeeEditWindow edit = new EmployeeEditWindow();
edit.IsAdd = true;
edit.ShowDialog(); if (edit.IsLoad == true)
{
dataGridView1.DataSource = load();
} }
/// <summary>
/// 删除员工
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void toolsb_delete_Click(object sender, EventArgs e)
{
Guid id=(Guid)dataGridView1.CurrentRow.Cells[].Value;
string name=(string)dataGridView1.CurrentRow.Cells[].Value;//这里的cell是相对于list员工操作窗口上name这列,即使第二行
if (MessageBox.Show("真的要删除---"+name+"---吗?","警告!",MessageBoxButtons.OKCancel)==DialogResult.OK)
{
EmployeeDAL dal = new EmployeeDAL();
dal.DeleteById(id);
dataGridView1.DataSource = load();
} }
/// <summary>
/// 修改员工信息
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void toolsb_edit_Click(object sender, EventArgs e)
{
EmployeeEditWindow edit = new EmployeeEditWindow();
edit.EditId = (Guid)dataGridView1.CurrentRow.Cells[].Value;
edit.IsAdd = false;
edit.ShowDialog();
if (edit.IsLoad == true)
{
dataGridView1.DataSource = load();
} }
/// <summary>
/// 自动加载所有员工信息
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void EmployeeListWindow_Load(object sender, EventArgs e)
{
DepartmentDAL dal = new DepartmentDAL();
cb_depart.DataSource = dal.ListAll();
cb_depart.DisplayMember = "Name";
cb_depart.ValueMember = "Id";
//cb_depart.SelectedValue= dtp_indate.Value = DateTime.Today.AddMonths(-);
dtp_enddate.Value = DateTime.Today; dataGridView1.DataSource= load(); }
/// <summary>
/// 综合查询
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
List<string> wherelist = new List<string>();
List<SqlParameter> parameter = new List<SqlParameter>();
if (ckb_name.Checked == true)
{
wherelist.Add("Name=@Name");
parameter.Add(new SqlParameter("@Name",tb_name.Text)); }
if (ckb_indate.Checked == true)
{
wherelist.Add("InDate>=@InDateStart and InDate<=@InDateEnd");
parameter.Add(new SqlParameter("@InDateStart",dtp_indate.Value));
parameter.Add(new SqlParameter("@InDateEnd",dtp_enddate.Value));
}
if (ckb_depart.Checked == true)
{
wherelist.Add("DepartmentId=@DepartmentId");
parameter.Add(new SqlParameter("@DepartmentId",cb_depart.SelectedValue));
} string whereSql=string.Join(" and ",wherelist);
string Sql="select * from T_Employee";
if (whereSql.Length > )
{
Sql = Sql + " where " + whereSql;
}
EmployeeDAL dal = new EmployeeDAL();
dataGridView1.DataSource= dal.SearchBySome(Sql, parameter); }
}
}
三:EmployeeDAL.cs代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using HRMSys.Model;
using System.Data;
using System.Data.SqlClient; namespace HRMSys.DAL
{
public class EmployeeDAL
{
/// <summary>
/// 将表的列转换为EmployeeList对象的字段
/// </summary>
/// <param name="row"></param>
/// <returns></returns>
public EmployeeList ToEmployeeListModel(DataRow row)
{
EmployeeList employee = new EmployeeList();
employee.Address = (string)row["Address"];
employee.BaseSalary = (int)row["BaseSalary"];
employee.BirthDay = (DateTime)row["BirthDay"];
employee.ContractEndDay = (DateTime)row["ContractEndDay"];
employee.ContractStartDay = (DateTime)row["ContractStartDay"];
employee.Department =GetNameByGuidDE( (Guid)row["DepartmentId"]);//////
employee.Education= GetNameByGuidID((Guid)row["EducationId"]);/////
employee.Email = (string)row["Email"];
employee.EmergencyContact = (string)sqlhelper.FromDbValue(row["EmergencyContact"]);
employee.Gender = GetNameByGuidID((Guid)row["GenderId"]);///////
employee.Id = (Guid)row["Id"];
employee.IdNum = (string)row["IdNum"];
employee.InDate = (DateTime)row["InDate"];
employee.Major = (string)sqlhelper.FromDbValue(row["Major"]);
employee.Marriage = GetNameByGuidID((Guid)row["MarriageId"]);/////////
employee.Name = (string)row["Name"];
employee.Nationality = (string)row["Nationality"];
employee.NativeAddr = (string)row["NativeAddr"];
employee.Number = (string)row["Number"];
employee.PartyStatus = GetNameByGuidID((Guid)row["PartyStatusId"]);//////
employee.Position = (string)row["Position"];
employee.Remarks = (string)sqlhelper.FromDbValue(row["Remarks"]);
employee.Resume = (string)sqlhelper.FromDbValue(row["Resume"]);
employee.School = (string)sqlhelper.FromDbValue(row["School"]);
employee.TelNum = (string)row["TelNum"];
employee.IsStopped = (bool)row["IsStopped"];
//todo:如果员工非常多,那么Photo会增加内存占用
employee.Photo = (byte[])sqlhelper.FromDbValue(row["Photo"]);
return employee;
} /// <summary>
/// 将表转换为Employee对象的字段
/// </summary>
/// <param name="row"></param>
/// <returns></returns>
public Employee ToEmployeeModel(DataRow row)
{
Employee employee = new Employee();
employee.Address = (string)row["Address"];
employee.BaseSalary = (int)row["BaseSalary"];
employee.BirthDay = (DateTime)row["BirthDay"];
employee.ContractEndDay = (DateTime)row["ContractEndDay"];
employee.ContractStartDay = (DateTime)row["ContractStartDay"];
employee.DepartmentId = (Guid)row["DepartmentId"];//////
employee.EducationId = (Guid)row["EducationId"];/////
employee.Email = (string)row["Email"];
employee.EmergencyContact = (string)sqlhelper.FromDbValue(row["EmergencyContact"]);
employee.GenderId = (Guid)row["GenderId"];///////
employee.Id = (Guid)row["Id"];
employee.IdNum = (string)row["IdNum"];
employee.InDate = (DateTime)row["InDate"];
employee.Major = (string)sqlhelper.FromDbValue(row["Major"]);
employee.MarriageId = (Guid)row["MarriageId"];/////////
employee.Name = (string)row["Name"];
employee.Nationality = (string)row["Nationality"];
employee.NativeAddr = (string)row["NativeAddr"];
employee.Number = (string)row["Number"];
employee.PartyStatusId = (Guid)row["PartyStatusId"];//////
employee.Position = (string)row["Position"];
employee.Remarks = (string)sqlhelper.FromDbValue(row["Remarks"]);
employee.Resume = (string)sqlhelper.FromDbValue(row["Resume"]);
employee.School = (string)sqlhelper.FromDbValue(row["School"]);
employee.TelNum = (string)row["TelNum"];
employee.IsStopped = (bool)row["IsStopped"];
//todo:如果员工非常多,那么Photo会增加内存占用
employee.Photo = (byte[])sqlhelper.FromDbValue(row["Photo"]);
return employee;
}
/// <summary>
/// 软删除指定id的员工信息
/// </summary>
/// <param name="id"></param>
public void DeleteById(Guid id)
{
//update T_Operator set IsLocked=@IsLocked where Id=@Id"
int i= sqlhelper.ExecuteNon("update T_Employee set IsStopped =1 where Id=@Id",
new SqlParameter ("@Id",id)); }
/// <summary>
/// 指定id从idname中取得名字
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public string GetNameByGuidID(Guid id)
{
DataTable table= sqlhelper.datatable("select Name from T_IdName where Id=@Id",
new SqlParameter("@Id",id));
DataRow row = table.Rows[];
return (string) row["Name"]; }
/// <summary>
/// 指定id从department中取得名字
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public string GetNameByGuidDE(Guid id)
{
DataTable table = sqlhelper.datatable("select Name from T_Department where Id=@Id",
new SqlParameter("@Id", id));
DataRow row = table.Rows[];
return (string)row["Name"];
}
/// <summary>
/// 得到所有未删除的员工的所有信息
/// </summary>
/// <returns>Employee数组</returns>
public EmployeeList[] ListAll()
{
DataTable table = sqlhelper.datatable("select * from T_Employee where IsStopped=0");
EmployeeList[] items = new EmployeeList[table.Rows.Count];
for (int i = ; i < table.Rows.Count; i++)
{
EmployeeList employee = ToEmployeeListModel(table.Rows[i]);
items[i] = employee;
}
return items;
}
/// <summary>
/// 得到指定id的员工信息
/// </summary>
/// <param name="id"></param>
/// <returns>Employee对象</returns>
public Employee GetById(Guid id)
{
DataTable table = sqlhelper.datatable("select * from T_Employee where Id=@Id",
new SqlParameter("@Id", id));
if (table.Rows.Count == )
{
return ToEmployeeModel(table.Rows[]);
}
else
{
throw new Exception();
}
}
/// <summary>
/// 插入一条员工数据
/// </summary>
/// <param name="employee"></param>
public void Insert(Employee employee)
{
sqlhelper.ExecuteNon(@"INSERT INTO [T_Employee]
([Id],[Number],[Name],[BirthDay],[InDate],[MarriageId],[PartyStatusId],[Nationality]
,[NativeAddr],[EducationId],[Major],[School],[Address],[BaseSalary],[Email]
,[IdNum],[TelNum],[EmergencyContact],[DepartmentId],[Position],[ContractStartDay]
,[ContractEndDay],[Resume],[Remarks],[IsStopped],[GenderId],Photo)
VALUES(newid(),@Number,@Name,@BirthDay,@InDate,@MarriageId,@PartyStatusId,@Nationality
,@NativeAddr,@EducationId,@Major,@School,@Address,@BaseSalary,@Email
,@IdNum,@TelNum,@EmergencyContact,@DepartmentId,@Position,@ContractStartDay
,@ContractEndDay,@Resume,@Remarks,0,@GenderId,@Photo)", new SqlParameter("@Number", employee.Number)
, new SqlParameter("@Name", employee.Name)
, new SqlParameter("@BirthDay", employee.BirthDay)
, new SqlParameter("@InDate", employee.InDate)
, new SqlParameter("@MarriageId", employee.MarriageId)
, new SqlParameter("@PartyStatusId", employee.PartyStatusId)
, new SqlParameter("@Nationality", employee.Nationality)
, new SqlParameter("@NativeAddr", employee.NativeAddr)
, new SqlParameter("@EducationId", employee.EducationId)
, new SqlParameter("@Major", sqlhelper.ToDbValue(employee.Major))
, new SqlParameter("@School", sqlhelper.ToDbValue(employee.School))
, new SqlParameter("@Address", employee.Address)
, new SqlParameter("@BaseSalary", employee.BaseSalary)
, new SqlParameter("@Email", sqlhelper.ToDbValue(employee.Email))
, new SqlParameter("@IdNum", employee.IdNum)
, new SqlParameter("@TelNum", employee.TelNum)
, new SqlParameter("@EmergencyContact", sqlhelper.ToDbValue(employee.EmergencyContact))
, new SqlParameter("@DepartmentId", employee.DepartmentId)
, new SqlParameter("@Position", employee.Position)
, new SqlParameter("@ContractStartDay", employee.ContractStartDay)
, new SqlParameter("@ContractEndDay", employee.ContractEndDay)
, new SqlParameter("@Resume", sqlhelper.ToDbValue(employee.Resume))
, new SqlParameter("@Remarks", sqlhelper.ToDbValue(employee.Remarks))
, new SqlParameter("@GenderId", employee.GenderId)
, new SqlParameter("@Photo", SqlDbType.Image) {Value= sqlhelper.ToDbValue(employee.Photo) }//需要指定专门image的类型,数据库不认识,
); }
/// <summary>
/// 更新一条员工数据数据
/// </summary>
/// <param name="employee"></param>
public void Update(Employee employee)
{
sqlhelper.ExecuteNon(@"Update T_Employee set
[Number]=@Number,[Name]=@Name,[BirthDay]=@BirthDay,[InDate]=@InDate,
[MarriageId]=@MarriageId,[PartyStatusId]=@PartyStatusId,[Nationality]=@Nationality,
[NativeAddr]=@NativeAddr,[EducationId]=@EducationId,[Major]=@Major,[School]=@School,
[Address]=@Address,[BaseSalary]=@BaseSalary,[Email]=@Email,
[IdNum]=@IdNum,[TelNum]=@TelNum,[EmergencyContact]=@EmergencyContact,
[DepartmentId]=@DepartmentId,[Position]=@Position,[ContractStartDay]=@ContractStartDay,
[ContractEndDay]=@ContractEndDay,[Resume]=@Resume,[Remarks]=@Remarks,[GenderId]=@GenderId,
photo=@Photo Where Id=@Id", new SqlParameter("@Number", employee.Number)
, new SqlParameter("@Name", employee.Name)
, new SqlParameter("@BirthDay", employee.BirthDay)
, new SqlParameter("@InDate", employee.InDate)
, new SqlParameter("@MarriageId", employee.MarriageId)
, new SqlParameter("@PartyStatusId", employee.PartyStatusId)
, new SqlParameter("@Nationality", employee.Nationality)
, new SqlParameter("@NativeAddr", employee.NativeAddr)
, new SqlParameter("@EducationId", employee.EducationId)
, new SqlParameter("@Major", sqlhelper.ToDbValue(employee.Major))
, new SqlParameter("@School", sqlhelper.ToDbValue(employee.School))
, new SqlParameter("@Address", employee.Address)
, new SqlParameter("@BaseSalary", employee.BaseSalary)
, new SqlParameter("@Email", sqlhelper.ToDbValue(employee.Email))
, new SqlParameter("@IdNum", employee.IdNum)
, new SqlParameter("@TelNum", employee.TelNum)
, new SqlParameter("@EmergencyContact", sqlhelper.ToDbValue(employee.EmergencyContact))
, new SqlParameter("@DepartmentId", employee.DepartmentId)
, new SqlParameter("@Position", employee.Position)
, new SqlParameter("@ContractStartDay", employee.ContractStartDay)
, new SqlParameter("@ContractEndDay", employee.ContractEndDay)
, new SqlParameter("@Resume", sqlhelper.ToDbValue(employee.Resume))
, new SqlParameter("@Remarks", sqlhelper.ToDbValue(employee.Remarks))
, new SqlParameter("@GenderId", employee.GenderId)
, new SqlParameter("@Photo", SqlDbType.Image) {Value= sqlhelper.ToDbValue(employee.Photo) }//需要指定专门image的类型,数据库不认识,
, new SqlParameter("@Id", employee.Id)
);
}
/// <summary>
/// 综合查询
/// </summary>
/// <param name="sql"></param>
/// <param name="parameter"></param>
/// <returns></returns>
public EmployeeList[] SearchBySome(string sql, List<SqlParameter> parameter)
{
DataTable table= sqlhelper.datatable(sql, parameter.ToArray());
EmployeeList[] items = new EmployeeList[table.Rows.Count];
for (int i = ; i < table.Rows.Count; i++)
{
items[i] = ToEmployeeListModel(table.Rows[i]);
} return items;
} } }
四:datetime.now和datetime.today区别
datetime.now 表示现在的最准确的时间,精确到秒
datetime.today 表示当天的时间,精确到天
综合查询员工和datetime.now和datetime.today区别的更多相关文章
- allow zero datetime=true导致datetime转换失败:MySql.Data.Types.MySqlDateTime”的对象无法转换为类型“System.Nullable`1[System.DateTime]
allow zero datetime=true导致datetime转换失败:MySql.Data.Types.MySqlDateTime”的对象无法转换为类型“System.Nullable`1[S ...
- Python datetime模块的datetime类
datetime模块定义了下面这几个类: datetime.date:表示日期的类.常用的属性有year, month, day. datetime.time:表示时间的类.常用的属性有hour, m ...
- python中datetime模块中datetime对象的使用方法
本文只讲述datetime模块中datetime对象的一些常用的方法,如果读者需要更多datetime模块的信息,请查阅此文档. datetime模块的对象有如下: timedelta date da ...
- [转] datetime.now、datetime.utcnow以及Django中的timezone.now之间的区别
https://blog.csdn.net/sinat_41898105/article/details/80984298 在我们使用Django做项目时经常会遇到时间的存储与读取不一致的问题 ...
- datetime与smalldatetime之间的区别
1.一直以为smalldatetime和datetime的差别只是在于时间范围: smalldatetime的有效时间范围1900/1/1~2079/6/6datetime的有效时间范围1753/1/ ...
- mysql建库DATETIME、DATE 和 TIMESTAMP区别
http://blog.sina.com.cn/s/blog_5f7b8c2c0100tf6t.html DATETIME.DATE 和 TIMESTAMP 类型是相似的.本篇描述了它们的特性 ...
- mysql中时间类型datetime,timestamp与int的区别
在mysql中存储时间,我们可以用datetime 格式,timestamp格式,也可以用int格式.那么我们设计的时候该如何考虑呢? 首先,我觉得应该明白这几个格式究竟是如何的,然后看看他们的区别, ...
- 在转换为 UTC 时大于 DateTime.MaxValue 或小于 DateTime.MinValue 的 DateTime 值无法系列化为 JSON
看到这个错往往会感到莫名其妙! 其原因其实是数据库的DateTime最小值和C#的DateTime不一样 Sql Server DateTime 类型必须介于 1/1/1753 12:00:00 AM ...
- DateTime.Now与DateTime.Today的区别
区别如下图: DateTime.Now: 不仅显示日期 还显示当前时间: DateTime.Today: 只显示当前日期,没有时间
随机推荐
- js substr和substring字符串截取
substr(start,length)第一个参数是开始位置(注:start的开始是从0开始,看到好多博客上面是从1开始,在火狐和谷歌执行了一下是从0开始),第二个参数是截取字符串的长度(可以省略,表 ...
- CSS的clip-path(转)
基本概念 clip-path从单词"clip path"的直译上来说,表示的就是裁剪路径.既然有裁剪,咱们就来了解这里面的几个简单的概念. 裁剪就是从某样东西剪切一块.比如说,我们 ...
- EF Lambda 多表查询
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mv ...
- 如何用visual studio控件(repeater)绑定数据库(SQL server)信息并显示
今天学习了下如何间接绑定数据库网上看了很多信息,都云里雾里,没有图片说明,初学者完全看不懂,我自己做了一个DEMO,相信可以帮到大家! 一.建立数据库,并构建表信息,我的表信息如下: 表中的数据在数据 ...
- 在企业级开发中使用Try...Catch...会影响效率吗?
感谢神啊.上帝及老天爷让我失眠,才能够有了本篇文章. 记得不久之前,公司一同事曾经说过:“如果是Winform开发,由于程序是在本地,使用try...catch不会有太大性能问题,可是如果是在web服 ...
- Word 中标题的编号变成黑框
问题: 在使用Word编写文档时,提前拟好的标题编号会突然变成黑框(黑色的方框,黑色的矩形),如下图 解决方案: 1.将光标定位到标题中,紧邻黑框的右侧 2.按键盘左方向键使方框变成黑色 4.按键盘的 ...
- 项目报错,tomcat中引起
1.项目报错,但发现工程并没有错.此刻错误应该定位如下,即工程里面引用的jar可能有错,可能是路劲变了....
- iOS7初体验(2)——单元测试
在Xcode 4.6及以前的版本,一直觉得单元测试这部分功能做得很鸡肋,用起来感觉很别扭.这一次Xcode 5.0默认就引入了单元测试,赶快来看看看相比以前的版本有什么提升吧!~_~ 1. 首 ...
- 对UIImage进行的一些操作
1.生成指定宽高的UIImage对象(oldImage为原始图片对象,newImage为操作后的图片对象) // 参数1:图片的尺寸 参数2:是否透明(没看出YES和NO有什么区别) 参数3:缩放(1 ...
- 关于JavaScript的类的继承
其实最一开始学JS的时候就看过继承的实现.当时只是去试着理解从书上看来的代码段而已.今天又重新思考了一下,感觉这是一个思维探索演进的结果. 继承,即复用. 如果抛开继承的固有思想,让b复用a的成员,最 ...