#region 数据实体
        /// <summary>
        /// 得到  batch 数据实体
        /// </summary>
        /// <param name="row">row</param>
        /// <returns>batch 数据实体</returns>
        public BatchEntity Populate_BatchEntity_FromDr(DataRow row)
        {
            BatchEntity Obj = new BatchEntity();
            if (row != null)
            {
                Obj.ID = ((row["ID"]) == DBNull.Value) ? 0 : Convert.ToInt32(row["ID"]);
                Obj.Batch = ((row["Batch"]) == DBNull.Value) ? 0 : Convert.ToInt32(row["Batch"]);
                Obj.CreateID = row["CreateID"].ToString();
                Obj.CreateTime = ((row["CreateTime"]) == DBNull.Value) ? Convert.ToDateTime("1900-1-1") : Convert.ToDateTime(row["CreateTime"]);
                Obj.ModifyID = row["ModifyID"].ToString();
                Obj.ModifyTime = ((row["ModifyTime"]) == DBNull.Value) ? Convert.ToDateTime("1900-1-1") : Convert.ToDateTime(row["ModifyTime"]);
                Obj.Re = row["Re"].ToString();
            }
            else
            {
                return null;
            }
            return Obj;
        }  Obj.ID = ((row["ID"]) == DBNull.Value) ? 0 : Convert.ToInt32(row["ID"]);具体就是?0:  这2个符号代表是什么意思。。求大虾解答。。谢谢了

解决方案 »

  1.   

    如果 (row["ID"]) == DBNull.Value)满足,就是0,如果不满足就是Convert.ToInt32(row["ID"]
      

  2.   

    恩 基本语法 不常用的 if else看着明显些 省点编辑代码
      

  3.   


    Obj.ID = ((row["ID"]) == DBNull.Value) ? 0 : Convert.ToInt32(row["ID"]);if(row["ID"] == DBNull.Value)
    {
         Obj.ID = 0;
    }
    else
    {
         Obj.ID=row["ID"];
    }
      

  4.   

    b ? x : y 形式的条件表达式.
    首先计算条件 b.,如果 b 为 true,则计算 x,并且它成为运算结果;
    否则计算 y,并且它成为运算结果.最基本的条件表达式了
      

  5.   

    就是C语言里的if(a>b)?a:b一样