zoukankan      html  css  js  c++  java
  • 从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                              
  • 相关阅读:
    [BZOJ 1019][SHOI2008]汉诺塔(递推)
    [BZOJ 1018][SHOI2008]堵塞的交通traffic(线段树)
    [BZOJ 1017][JSOI2008]魔兽地图DotR(树形Dp)
    [BZOJ 1015][JSOI2008]星球大战starwar(并查集+离线)
    [BZOJ 1014][JSOI2008]火星人prefix(Splay+二分+hash)
    Vue脚手架创建项目目录详解
    Vue-cli3 vue.config.js配置详解
    Systemd指令大全
    CentOS7 常用命令集合
    Centos7虚拟机集群配置
  • 原文地址:https://www.cnblogs.com/MarkTang/p/3964826.html
Copyright © 2011-2022 走看看