首页 > 代码库 > 从DB灌值到DataTable时,字段值为NULL时报错相关信息;
从DB灌值到DataTable时,字段值为NULL时报错相关信息;
报错信息:
1.
2.
3.
4.
5.
6.
解决方法:
1. Data Layer SQL 语句取数据时,把其列值有为null的字段用0.00替换,(ISNULL的用法);
2.
1 #region 查询工资信息 2 /// <summary> 3 /// 查询工资信息 4 /// </summary> 5 /// <param name="model"></param> 6 /// <param name="pageIndex"></param> 7 /// <param name="pageCount"></param> 8 /// <param name="ord"></param> 9 /// <param name="TotalCount"></param> 10 /// <returns></returns> 11 public static DataTable GetSalaryInfoByEmployee(SalaryInfoModel model, string ReportType, string DeptID, int pageIndex, int pageCount, string ord, string endmonth, ref int TotalCount) 12 { 13 #region 查询语句 14 StringBuilder searchSql = new StringBuilder(); 15 searchSql.AppendLine(" SELECT "); 16 searchSql.AppendLine(" A.ID,A.ReprotNo,A.CompanyCD,A.DeptName,A.EmployeeID,A.EmployeeName,A.Remarks,"); 17 searchSql.AppendLine("isnull(A.BFGJJ,0.00) BFGJJ,"); 18 searchSql.AppendLine("isnull(A.BFGZ,0.00) BFGZ, "); 19 searchSql.AppendLine("isnull(A.BLGZ,0.00) BLGZ,"); 20 searchSql.AppendLine("isnull(A.CTF,0.00) CTF, "); 21 searchSql.AppendLine("isnull(A.DTF,0.00) DTF,"); 22 searchSql.AppendLine("isnull(A.FTF,0.00) FTF, "); 23 searchSql.AppendLine("isnull(A.GHF,0.00) GHF,"); 24 searchSql.AppendLine("isnull(A.GJJ,0.00) GJJ,"); 25 searchSql.AppendLine("isnull(A.GTS,0.00) GTS,"); 26 searchSql.AppendLine("isnull(A.GWF,0.00) GWF,"); 27 searchSql.AppendLine("isnull(A.JBGZ,0.00) JBGZ,"); 28 searchSql.AppendLine("isnull(A.JiangJ,0.00) JiangJ,"); 29 searchSql.AppendLine("isnull(A.JZZYBF,0.00) JZZYBF,"); 30 searchSql.AppendLine("isnull(A.KCBJ,0.00) KCBJ, "); 31 searchSql.AppendLine("isnull(A.MTF,0.00) MTF, "); 32 searchSql.AppendLine("isnull(A.QT,0.00) QT, "); 33 searchSql.AppendLine("isnull(A.QTE,0.00) QTE, "); 34 searchSql.AppendLine("isnull(A.QTY,0.00) QTY, "); 35 searchSql.AppendLine("isnull(A.SBJ,0.00) SBJ, "); 36 searchSql.AppendLine("isnull(A.Total,0.00) Total, "); 37 searchSql.AppendLine("isnull(A.TotalOne,0.00) TotalOne, "); 38 searchSql.AppendLine("isnull(A.TotalTwo,0.00) TotalTwo, "); 39 searchSql.AppendLine("isnull(A.YBJ,0.00) YBJ, "); 40 searchSql.AppendLine("isnull(A.YLJ,0.00) YLJ "); 41 searchSql.AppendLine(" ,c.DeptName as DeptWprkName "); 42 searchSql.AppendLine(" ,Substring(b.ReportMonth, 1, 4) + ‘年‘ "); 43 searchSql.AppendLine(" + Substring(b.ReportMonth, 5, 2) + ‘月‘ "); 44 searchSql.AppendLine(" AS ReportMonth "); 45 searchSql.AppendLine(" FROM officedba.SalaryInfo a "); 46 searchSql.AppendLine(" left join officedba.SalaryReport b on a.ReprotNo=b.ReprotNo "); 47 searchSql.AppendLine(" left join officedba.DeptInfo c on b.DeptID=c.ID "); 48 searchSql.AppendLine(" left join officedba.EmployeeInfo d on a.employeeID=d.ID "); 49 searchSql.AppendLine(" WHERE "); 50 searchSql.AppendLine(" a.CompanyCD = @CompanyCD "); 51 searchSql.AppendLine(" AND b.ReportType = @ReportType "); 52 53 #endregion 54 55 //定义查询的命令 56 SqlCommand comm = new SqlCommand(); 57 //公司代码 58 comm.Parameters.Add(SqlHelper.GetParameterFromString("@CompanyCD", model.CompanyCD)); 59 comm.Parameters.Add(SqlHelper.GetParameterFromString("@ReportType", ReportType)); 60 UserInfoUtil userInfo = (UserInfoUtil)SessionUtil.Session["UserInfo"]; 61 if (userInfo.EmployeeID != 10389 && userInfo.EmployeeID != 10403 && userInfo.EmployeeID != 8526 && userInfo.EmployeeID != 1873) 62 { 63 searchSql.AppendLine(" AND b.DeptId in (select emp.DepID from officedba.EmpAndDep emp where emp.EmpID=@EmployeeID) "); 64 comm.Parameters.Add(SqlHelper.GetParameterFromString("@EmployeeID", userInfo.EmployeeID.ToString())); 65 } 66 67 #region 页面输入条件 68 //员工姓名 69 if (!string.IsNullOrEmpty(model.EmployeeName)) 70 { 71 searchSql.AppendLine(" AND A.EmployeeName LIKE ‘%‘ + @EmployeeName + ‘%‘ "); 72 comm.Parameters.Add(SqlHelper.GetParameterFromString("@EmployeeName", model.EmployeeName)); 73 } 74 75 if (!string.IsNullOrEmpty(model.DeptName)) 76 { 77 searchSql.AppendLine(" AND B.DeptID in (" + model.DeptName + ") "); 78 //comm.Parameters.Add(SqlHelper.GetParameterFromString("@DeptName", model.DeptName)); 79 } 80 //所属月份 81 if (!string.IsNullOrEmpty(model.Month)) 82 { 83 if (endmonth != "") 84 { 85 searchSql.AppendLine(" AND convert(int,b.ReportMonth) between @ReportMonth and @endReportMonth "); 86 comm.Parameters.Add(SqlHelper.GetParameterFromString("@endReportMonth", endmonth)); 87 } 88 else 89 { 90 searchSql.AppendLine(" AND convert(int,b.ReportMonth) > @ReportMonth "); 91 } 92 comm.Parameters.Add(SqlHelper.GetParameterFromString("@ReportMonth", model.Month)); 93 94 } 95 96 if (!string.IsNullOrEmpty(DeptID)) 97 { 98 searchSql.AppendLine(" AND (CHARINDEX(‘,‘ +LTRIM(d.DeptID),(@DeptID))>0 or CHARINDEX(RTRIM(d.DeptID)+‘,‘,(@DeptID))>0 or CHARINDEX(LTRIM(d.DeptID),(@DeptID))>0) "); 99 comm.Parameters.Add(SqlHelper.GetParameterFromString("@DeptID", DeptID));100 }101 #endregion
3. SQL Statements
1 SELECT 2 A.ID,A.ReprotNo,A.CompanyCD,A.DeptName,A.EmployeeID,A.EmployeeName,A.Remarks, 3 isnull(A.BFGJJ,0.00) BFGJJ, 4 isnull(A.BFGZ,0.00) BFGZ, 5 isnull(A.BLGZ,0.00) BLGZ, 6 isnull(A.CTF,0.00) CTF, 7 isnull(A.DTF,0.00) DTF, 8 isnull(A.FTF,0.00) FTF, 9 isnull(A.GHF,0.00) GHF,10 isnull(A.GJJ,0.00) GJJ,11 isnull(A.GTS,0.00) GTS,12 isnull(A.GWF,0.00) GWF,13 isnull(A.JBGZ,0.00) JBGZ,14 isnull(A.JiangJ,0.00) JiangJ,15 isnull(A.JZZYBF,0.00) JZZYBF,16 isnull(A.KCBJ,0.00) KCBJ, 17 isnull(A.MTF,0.00) MTF, 18 isnull(A.QT,0.00) QT, 19 isnull(A.QTE,0.00) QTE, 20 isnull(A.QTY,0.00) QTY, 21 isnull(A.SBJ,0.00) SBJ, 22 isnull(A.Total,0.00) Total, 23 isnull(A.TotalOne,0.00) TotalOne, 24 isnull(A.TotalTwo,0.00) TotalTwo, 25 isnull(A.YBJ,0.00) YBJ, 26 isnull(A.YLJ,0.00) YLJ 27 ,c.DeptName as DeptWprkName 28 ,Substring(b.ReportMonth, 1, 4) + ‘年‘ 29 + Substring(b.ReportMonth, 5, 2) + ‘月‘ 30 AS ReportMonth 31 FROM officedba.SalaryInfo a 32 left join officedba.SalaryReport b on a.ReprotNo=b.ReprotNo 33 left join officedba.DeptInfo c on b.DeptID=c.ID
从DB灌值到DataTable时,字段值为NULL时报错相关信息;
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。