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

        public static bool IsNullOrEmpty(this DataTable dt)
{
return dt == null || dt.Rows.Count <= ;
}
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 < || 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 <= ;
} /// <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

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. 创建SharePoint 2010 Timer Job

    好久没有写博客了. 近期在使用SharePoint 2010中Timer Job的功能,有了一点心得,分享一下. 我个人觉得SharePoint Timer Job和Windows Service或者 ...

  2. Spring的AOP特性

    一.AOP简介 AOP是Aspect-Oriented Programming的缩写,即面向切面编程.利用oop思想,可以很好的处理业务流程,但是不能把系统中某些特定的重复性行为封装到模块中.例如,在 ...

  3. LeetCode 266. Palindrome Permutation (回文排列)$

    Given a string, determine if a permutation of the string could form a palindrome. For example," ...

  4. ios oc调用swift framework

    1.oc 调用swift /*oc调用swift, project name为DeomOC: 1.oc工程DemoOC中显式创建一个swift文件,生成DemoOC-Bridging-Header.h ...

  5. tiny4412学习(四)之移植linux-设备树(1)设备树基础知识及GPIO中断【转】

    本文转载自:http://blog.csdn.net/fengyuwuzu0519/article/details/74177978 版权声明:本文为博主原创文章,转载请注明http://blog.c ...

  6. How to: Set Properties of Web Application Projects

    https://msdn.microsoft.com/library/aa983454(v=vs.100).aspx ASP.NET Web application projects share th ...

  7. 推荐微软Windows 8 Metro应用开发虚拟实验室

    Kevin Fan分享开发经验,记录开发点滴 推荐微软Windows 8 Metro应用开发虚拟实验室 2012-07-19 05:23 by jv9, 1940 阅读, 4 评论, 收藏, 编辑 微 ...

  8. luogu 1045 麦森数

    题目大意: 从文件中输入P(1000<P<3100000),计算2^P−1的位数和最后500位数字(用十进制高精度数表示) 思路: 一道高精度练习题 其中位数是一个结论 位数=[P*log ...

  9. [Codeplus 2017] 晨跑

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=5105 [算法] 答案为三个数的最小公倍数 [代码] #include<bits ...

  10. 利用Spinnaker创建持续交付流水线

    在Pivotal Container Service (PKS)上部署软件的方法多种多样,本文重点介绍如何使用Spinnaker在PKS(或任何Kubernetes群集)上进行持续交付. Pivota ...