检查DataTable字符串列中的所有字符串值是否为整数

时间:2014-03-06 23:06:56

标签: datatable ado.net validation

我有一个DataTable,其列名为'UID',类型为字符串。

在此列中验证每个值是否为整数的最佳方法是什么?

一种方法是循环遍历每一行,如下面的代码(dt变量是一个填充的DataTable对象),然后在try catch块中使用integer.Parse检查UID列的值,但可能有一个更简单的LINQ基于方法。

 if( dt!=null)
 {          
            try
                {
                    foreach (DataRow row in dt.Rows)
                    {
                        int.Parse(row["UID"].ToString());
                    }
                }
                catch (Exception ex)
                {
                    throw;
                }
  }

2 个答案:

答案 0 :(得分:1)

您应该使用int.TryParse代替,您可以使用Enumerable.All来缩短代码:

int i;
bool allInts = table.AsEnumerable()
    .All(r => int.TryParse(r.Field<string>("UID"), out i));

答案 1 :(得分:0)

试试这个

var table = YourTable;
int invalidDataCount = table.AsEnumerable().Where(d => d.Field<string>("UID").Contains('-')).Count();
if (invalidDataCount > 0) {
     throw new Exception();
}