C#去除掉mssql中所有null值列后返给前端

C#去除掉mssql中所有null值列后返给前端

由于mssql不能直接过滤查询null列,因此如果在c#前端页面处理的话,会携带大量的空字段来回跑,大大影响效率和速度,这就需要在控制台前对数据进行过滤,具体如下:

public ActionResult GetEditLog(string keyValue)
        {            
            string sql = "select * from  editLog where id='" + keyValue + "'";
            DataTable dt = new DataTable();
            //调用主模块中方法去掉null值--DataTableRemoveEmptyCol方法
            var ob = new JobApp.Data.RepositoryBase();
            dt = ob.FindTable(sql);
            //最后将dt去除掉null值后返给前端
            return Content(jobsApp.DataTableRemoveEmptyCol(dt).ToJson());           
        }

主模块中新建方法,去掉null值的字段:

// <summary>
        /// DataTable 去掉null值的字段,削除空列
        /// </summary>
        /// <param name="dt">DataTable</param>
        /// <returns>DataTable</returns>
        public DataTable DataTableRemoveEmptyCol(DataTable dt)
        {
            for (int i = dt.Columns.Count - 1; i >= 0; i--)
            {
                bool flg_AllNull = true;
                foreach (DataRow r in dt.Rows)
                {
                    if (!r.IsNull(dt.Columns[i]))
                    {
                        flg_AllNull = false;
                        break;
                    }
                }
                if (flg_AllNull)
                {
                    dt.Columns.RemoveAt(i);
                }
            }
            return dt;
        }

最终得到简洁的数据了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值