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