C# DataTable扩展方法
在日常搬砖中,总结了一些简单的扩展方法。
public static bool IsNullOrEmpty(this DataTable dt) { return dt == null || dt.Rows.Count <= 0; } public static bool IsNotEmpty(this DataTable dt) { return dt.IsNullOrEmpty() == false; }
#region DataTable Extension /// <summary> /// 获取字符串 /// </summary> /// <param name="pColumnName">列名</param> /// <returns></returns> public static string GetStringValue(this DataTable data, int rowIndex, string pColumnName) { return GetValue(data, rowIndex, pColumnName).ToSafeStr(); } /// <summary> /// 获取整型 /// </summary> /// <param name="pColumnName">列名</param> /// <returns></returns> public static int GetIntValue(this DataTable data, int rowIndex, string pColumnName) { return GetStringValue(data, rowIndex, pColumnName).ToInt(); } /// <summary> /// 获取浮点型 /// </summary> /// <param name="pColumnName">列名</param> /// <returns></returns> public static float GetFloatValue(this DataTable data, int rowIndex, string pColumnName) { return GetStringValue(data, rowIndex, pColumnName).ToFloat(); } /// <summary> /// 获取Boolean /// </summary> /// <param name="pColumnName">列名</param> /// <returns></returns> public static bool GetBooleanValue(this DataTable data, int rowIndex, string pColumnName) { string v = GetStringValue(data, rowIndex, pColumnName).ToLower(); return v.ToBoolean(); } public static decimal GetDecimalValue(this DataTable data, int rowIndex, string pColumnName) { return GetStringValue(data, rowIndex, pColumnName).ToDecimal(); } public static object GetValue(this DataTable data, int rowIndex, string pColumnName) { if (data == null || rowIndex < 0 || rowIndex >= data.Rows.Count) return null; return data.Rows[rowIndex].GetValue(pColumnName); } /// <summary> /// 判断DataTable 是否为空 /// </summary> public static bool IsNullOrEmpty(this DataTable data) { return data == null || data.Rows.Count <= 0; } /// <summary> /// 判断DataTable 不为空 /// </summary> public static bool IsNotEmpty(this DataTable data) { return data.IsNullOrEmpty() == false; } #endregion
#region DataRow Extension /// <summary> /// 获取字符串 /// </summary> /// <param name="pColumnName">列名</param> /// <returns></returns> public static string GetStringValue(this DataRow row, string pColumnName) { return GetValue(row, pColumnName).ToSafeStr(); } /// <summary> /// 获取整型 /// </summary> /// <param name="pColumnName">列名</param> /// <returns></returns> public static int GetIntValue(this DataRow row, string pColumnName) { return GetStringValue(row, pColumnName).ToInt(); } /// <summary> /// 获取浮点型 /// </summary> /// <param name="pColumnName">列名</param> /// <returns></returns> public static float GetFloatValue(this DataRow row, string pColumnName) { return GetStringValue(row, pColumnName).ToFloat(); } /// <summary> /// 获取Boolean /// </summary> /// <param name="pColumnName">列名</param> /// <returns></returns> public static bool GetBooleanValue(this DataRow row, string pColumnName) { string v = GetStringValue(row, pColumnName); return v.ToBoolean(); } public static object GetValue(this DataRow row, string pColumnName) { if (row == null) return null; if (pColumnName.IsNullOrEmpty()) return null; if (!row.Table.Columns.Contains(pColumnName)) return null; return row[pColumnName]; } #endregion
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了