这里写自定义目录标题
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;
}
最终得到简洁的数据了。