修剪DataTable的所有单元格

时间:2015-08-24 14:01:15

标签: c# linq datatable

我有一个使用SQL查询填充的DataTable。如果未调整此DataTable的值(从左侧和右侧),则程序无法找到正确的匹配项。所以我正在寻找一个有效的LINQ查询(不是两个嵌套的foreach语句)来修剪DataTable中的所有值并返回它的干净版本。

3 个答案:

答案 0 :(得分:6)

最有效的方法是在数据库中执行此操作,例如:

mod_passenger-3.0.21-11.el6

如果必须使用C#,最高效的方法是一个简单的循环(LINQ也使用循环):

SELECT RTRIM(LTRIM(ColumnName)) AS TrimmedColumn FROM TableName

通常,不要使用LINQ来修改源。查询不应引起副作用。

答案 1 :(得分:1)

我不确定您是否可以在DataTable上应用LINQ Select语句,并使用String类上的Trim()来实现您的目标。但作为数据库开发人员,我建议对SQL查询进行操作,并在查询中使用Rtrim(Ltrim(field1))AS field1来删除数据表之前的空格。

答案 2 :(得分:0)

数据表的扩展方法:

 public static void trimData(DataTable dt)
 {
            foreach (DataColumn c in dt.Columns)
                if (c.DataType == typeof(string))
                    foreach (DataRow r in dt.Rows)
                        try
                        {
                            r[c.ColumnName] = r[c.ColumnName].ToString().Trim();
                        }
                        catch
                        { }
 }

对于数据集:

public static void trimData(DataSet ds)
{
     foreach (DataTable t in ds.Tables)
       trimData(t);
}