1.下面是我获取实体集合的方法 ,
public IList<Model.Employee> GetList(int pageindex, string name, out int recCount) { var parameters = new { EmpName = name, PageIndex = 1, PageSize = 15, TotalRecords = 0 }; string sql = @" ;WITH MyList AS ( SELECT row_number() OVER ( ORDER BY p.AddDate ASC ) AS rownumber ,p.* FROM dbo.[Employee] p WHERE len(@EmpName)=0 or p.EmpName like '%'+ @EmpName +'%' ) SELECT rownumber , * FROM MyList WHERE rownumber >= ( @pageindex - 1 ) * @pagesize + 1 AND rownumber <= ( @pageindex - 1 ) * @pagesize + ( @pagesize ); select @TotalRecords=count(*) FROM dbo.[Employee] p WHERE len(@EmpName)=0 or p.EmpName like '%'+ @EmpName +'%' "; using (DbContext dbContext = new DbContext(false)) { dbContext.CreateCommand(sql, CommandType.Text); dbContext.SetCommandParameters(parameters); dbContext.AddParameter("TotalRecords", 0, DbType.Int32, 4, ParameterDirection.Output); List<Model.Employee> list = dbContext.FillList<Model.Employee>(); recCount = parameters.TotalRecords; return list; } }
结果发生了这个异常 , 不知为何?
2.下面这个是我的实体:
public class Employee { public Employee() { } private Int32 _EmpId; /// <summary> /// 用户ID /// </summary> public Int32 EmpId { get { return _EmpId; } set { _EmpId = value; } } ........... private string _EmpName; /// <summary> /// 用户名称 /// </summary> public string EmpName { get { return _EmpName; } set { _EmpName = value; } } private DateTime? _Birthday; /// <summary> /// 生日 /// </summary> public DateTime? Birthday { get { return _Birthday; } set { _Birthday = value; } } private DateTime _AddDate; /// <summary> /// 录入时间 /// </summary> public DateTime AddDate { get { return _AddDate; } set { _AddDate = value; } } }
下面是我新增Employee的方法
public override int Add(Model.Employee model) { string sql = @" insert into [Employee] ([LoginId],[EmpName],[EmpPwd],[IdNumber],[Telephone],[Fixphone],[Birthday],[Sex],[JobName],[EmpState],[DistName],[OrderQuota],[ShipQuota],[JoinDate],[BizType],[Roles]) values (@LoginId,@EmpName,@EmpPwd,@IdNumber,@Telephone,@Fixphone,@Birthday,@Sex,@JobName,@EmpState,@DistName,@OrderQuota,@ShipQuota,@JoinDate,@BizType,''); select scope_identity();"; using (DbContext dbContext = new DbContext(true)) { model.EmpId = DbHelper.ExecuteScalar<int>(sql, model, dbContext, CommandKind.SqlTextWithParams); dbContext.CommitTransaction(); } return model.EmpId; }
Birthday此时是null值, 即该员工未填写生日 , 执行Add方法时结果出现以下错误:
以下是SqlProfiler捕获的信息:
大家知道是什么问题吗??