在日常搬砖中,总结了一些简单的扩展方法。

  1. public static bool IsNullOrEmpty(this DataTable dt)
  2. {
  3. return dt == null || dt.Rows.Count <= ;
  4. }
  5. public static bool IsNotEmpty(this DataTable dt)
  6. {
  7. return dt.IsNullOrEmpty() == false;
  8. }
  1. #region DataTable Extension
  2. /// <summary>
  3. /// 获取字符串
  4. /// </summary>
  5. /// <param name="pColumnName">列名</param>
  6. /// <returns></returns>
  7. public static string GetStringValue(this DataTable data, int rowIndex, string pColumnName)
  8. {
  9. return GetValue(data, rowIndex, pColumnName).ToSafeStr();
  10. }
  11.  
  12. /// <summary>
  13. /// 获取整型
  14. /// </summary>
  15. /// <param name="pColumnName">列名</param>
  16. /// <returns></returns>
  17. public static int GetIntValue(this DataTable data, int rowIndex, string pColumnName)
  18. {
  19. return GetStringValue(data, rowIndex, pColumnName).ToInt();
  20. }
  21.  
  22. /// <summary>
  23. /// 获取浮点型
  24. /// </summary>
  25. /// <param name="pColumnName">列名</param>
  26. /// <returns></returns>
  27. public static float GetFloatValue(this DataTable data, int rowIndex, string pColumnName)
  28. {
  29. return GetStringValue(data, rowIndex, pColumnName).ToFloat();
  30. }
  31.  
  32. /// <summary>
  33. /// 获取Boolean
  34. /// </summary>
  35. /// <param name="pColumnName">列名</param>
  36. /// <returns></returns>
  37. public static bool GetBooleanValue(this DataTable data, int rowIndex, string pColumnName)
  38. {
  39. string v = GetStringValue(data, rowIndex, pColumnName).ToLower();
  40. return v.ToBoolean();
  41. }
  42.  
  43. public static decimal GetDecimalValue(this DataTable data, int rowIndex, string pColumnName)
  44. {
  45. return GetStringValue(data, rowIndex, pColumnName).ToDecimal();
  46. }
  47.  
  48. public static object GetValue(this DataTable data, int rowIndex, string pColumnName)
  49. {
  50. if (data == null || rowIndex < || rowIndex >= data.Rows.Count) return null;
  51.  
  52. return data.Rows[rowIndex].GetValue(pColumnName);
  53. }
  54.  
  55. /// <summary>
  56. /// 判断DataTable 是否为空
  57. /// </summary>
  58. public static bool IsNullOrEmpty(this DataTable data)
  59. {
  60. return data == null || data.Rows.Count <= ;
  61. }
  62.  
  63. /// <summary>
  64. /// 判断DataTable 不为空
  65. /// </summary>
  66. public static bool IsNotEmpty(this DataTable data)
  67. {
  68. return data.IsNullOrEmpty() == false;
  69. }
  70. #endregion
  1. #region DataRow Extension
  2. /// <summary>
  3. /// 获取字符串
  4. /// </summary>
  5. /// <param name="pColumnName">列名</param>
  6. /// <returns></returns>
  7. public static string GetStringValue(this DataRow row, string pColumnName)
  8. {
  9. return GetValue(row, pColumnName).ToSafeStr();
  10. }
  11.  
  12. /// <summary>
  13. /// 获取整型
  14. /// </summary>
  15. /// <param name="pColumnName">列名</param>
  16. /// <returns></returns>
  17. public static int GetIntValue(this DataRow row, string pColumnName)
  18. {
  19. return GetStringValue(row, pColumnName).ToInt();
  20. }
  21.  
  22. /// <summary>
  23. /// 获取浮点型
  24. /// </summary>
  25. /// <param name="pColumnName">列名</param>
  26. /// <returns></returns>
  27. public static float GetFloatValue(this DataRow row, string pColumnName)
  28. {
  29. return GetStringValue(row, pColumnName).ToFloat();
  30. }
  31.  
  32. /// <summary>
  33. /// 获取Boolean
  34. /// </summary>
  35. /// <param name="pColumnName">列名</param>
  36. /// <returns></returns>
  37. public static bool GetBooleanValue(this DataRow row, string pColumnName)
  38. {
  39. string v = GetStringValue(row, pColumnName);
  40. return v.ToBoolean();
  41. }
  42.  
  43. public static object GetValue(this DataRow row, string pColumnName)
  44. {
  45. if (row == null) return null;
  46. if (pColumnName.IsNullOrEmpty()) return null;
  47. if (!row.Table.Columns.Contains(pColumnName)) return null;
  48.  
  49. return row[pColumnName];
  50. }
  51.  
  52. #endregion

C# DataTable扩展方法的更多相关文章

  1. DataTable扩展方法ToList<T>()、ToJSON()、ToArrayList()

    /// <summary> /// 扩展方法类 /// </summary> public static class CommonExtension { /// <sum ...

  2. C#中DataTable与实体集合通用转换(使用扩展方法)

    本案例提供了:把DataRow转换为单个实体.dataTable转换为List泛型支持时间格式转换. 下文的方法都是扩展方法.扩展方法要求写在静态类中,方法也要静态. 它必须在一个非嵌套.非泛型的静态 ...

  3. 【转】给DataTable和DataRow扩展方法,直接转换为对象集合或对象

    /// <summary> /// 类 说 明:给DataTable和DataRow扩展方法,直接转换为对象集合或对象 /// 补充说明:此扩展类可以极大的简化操作,但是性能低下,大数据以 ...

  4. DataTable和DataRow利用反射直接转换为Model对象的扩展方法类

    DataTable和DataRow利用反射直接转换为Model对象的扩展方法类   /// <summary> /// 类 说 明:给DataTable和DataRow扩展方法,直接转换为 ...

  5. C#扩展方法 DataTable.ToEntitys

    类A需要添加功能,我们想到的就是在类A中添加公共方法,这个显而易见肯定可以,但是由于某种原因,你不能修改类A本身的代码,但是确实又需要增加功能到类A中去,怎么办? 这个时候扩展方法(Extension ...

  6. (原创)[C#] DataTable排序扩展方法

    一,前言 DataTable的应用极其广泛,对DataTable进行排序也有很多方式,每种的实现方式都不难,但是使用起来却比较繁琐,所以本人便写了一个扩展方法,专门对DataTable进行操作. 本篇 ...

  7. 分享.NET系统开发过程中积累的扩展方法

    .NET 3.5提供的扩展方法特性,可以在不修改原类型代码的情况下扩展它的功能.下面分享的这些扩展方法大部分来自于Code Project或是Stackoverflow,.NET为此还有一个专门提供扩 ...

  8. 译:泛型List集合转化为DateTable的扩展方法

    译文出处:http://www.codeproject.com/Tips/867866/Extension-Method-for-Generic-List-Collection-to-Da 这段代码是 ...

  9. c#扩展方法的理解(一:初识)

    扩展方法是静态方法,是类的一部分,但是实际上没有放在类的源代码中. 扩展方法所在的类也必须被声明为static C#只支持扩展方法,不支持扩展属性.扩展事件等. 扩展方法的第一个参数是要扩展的类型,放 ...

随机推荐

  1. J2EE基础总结(5)——EJB

    什么是EJB     JB事实上就是企业Java Beans. EJB是J2EE平台的重要组成部分. J2EE平台基于组件的企业级应用架构,提供多 层次.分布式和高事务的功能特点.     EJB提供 ...

  2. error: &#39;for&#39; loop initial declarations are only allowed in C99 mode

    error: 'for' loop initial declarations are only allowed in C99 mode 使用gcc编译代码是报出 error: 'for' loop i ...

  3. 负margin使用注意的一个问题

    在项目实力中经经常使用到负margin 如: <div id="test"> <ul> <li>子元素1</li> <li&g ...

  4. Codeforces Round #250 (Div. 1) D. The Child and Sequence 线段树 区间求和+点修改+区间取模

    D. The Child and Sequence   At the children's day, the child came to Picks's house, and messed his h ...

  5. Linux/Android多点触摸协议【转】

    本文转载自: 链接点击打开链接 关于Linux多点触摸协议大家可以参考kernel中的文档:https://www.kernel.org/doc/Documentation/input/multi-t ...

  6. DVB-subtitle解析流程浅

    DTV包含SUBTITLE和TTX. PMT中分别有不同的描述符对应,如下图的TTX descripter=0x56.语言ISO-639="fin" subtitle descri ...

  7. 云栖社区> > 正文 永久免费SSL安全证书Letsencrypt安装使用方法

    ./letsencrypt-auto certonly --standalone --email admin@thing.com -d thing.com -d www.thing.com

  8. 04、抽取BaseActivity

    // 在使用SDK各组件之前初始化context信息,传入ApplicationContext // 注意该方法要再setContentView方法之前实现 // SDKInitializer.ini ...

  9. mysql的启动和停止

    1.检查数据库服务器是否开启:任务管理器-->后台进程-->查看mysqld是否存在.存在说明开启了,反之没开启 2.管理员运行cmd,输入重启指令:net start **(**数据库名 ...

  10. struts2基础学习----struts.xml配置文件

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "- ...