首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >where子句中的DataTable.Select字符串函数

where子句中的DataTable.Select字符串函数
EN

Stack Overflow用户
提问于 2013-10-10 15:27:21
回答 3查看 57.5K关注 0票数 4

我在使用DataTable.Select()时遇到了问题,匹配值可能包含前导空格,需要正确修剪才能返回正确数量的记录。

目前,我的代码返回的记录较少,因为匹配由于不需要的字符而失败。

如何按照下面的示例DataTable.Select进行处理?

代码语言:javascript
复制
SELECT * FROM Table WHERE LTRIM(FullName) = ' Joe Smith'

我试过了

代码语言:javascript
复制
dataTable.Select("LTRIM(FullName) = ' Joe Smith'");

但它失败了。

有什么想法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-10-10 15:32:07

我建议改用Linq-To-DataSet,这会让它更清晰,更容易维护:

代码语言:javascript
复制
var rows = from row in dataTable.AsEnumerable()
           where row.Field<string>("FullName").Trim() == "Joe Smith"
           select row;

如果你想使用LTRIM,你只需要用TrimStart替换Trim即可。

如果你想要一个数组或列表,使用ToArrayToList,例如

代码语言:javascript
复制
DataRow[] rowsArray = rows.ToArray();

或者是一个DataTable

代码语言:javascript
复制
dataTable = rows.CopyToDataTable();

编辑:如果你坚持使用DataTable.Select或者你不能使用linq,这应该可以工作(LTRIM is not supported):

代码语言:javascript
复制
rowsArray = dataTable.Select("TRIM(FullName) = 'Joe Smith'");
票数 18
EN

Stack Overflow用户

发布于 2013-10-10 15:39:05

试一试:

代码语言:javascript
复制
string searchTerm = " Joe Smith";
string expression = String.Format("TRIM(FullName) = '{0}'", searchTerm.Trim());
dataTable.Select(expression);
票数 3
EN

Stack Overflow用户

发布于 2015-06-23 21:34:14

代码语言:javascript
复制
DataTable excelData = objGetExcelData.DataExcel(objEntities.StrFilePath, ConfigSettings.GetAppConfigValue("select * from sheet1"));

StringBuilder strInput = new StringBuilder();
DataView view = new DataView(excelData); 
DataTable distinctValues = view.ToTable(true, "GROUP_NAME"); 
if (distinctValues.Rows.Count > 0)
{
      for (int i = 0; i < distinctValues.Rows.Count; i++)
      {
           strGroupName = Convert.ToString(distinctValues.Rows[i]["GROUP_NAME"]);
           foreach (DataRow item in excelData.Select("GROUP_NAME = '" + strGroupName + "'"))
           {
               strInput.Append(Convert.ToString(item[0]));
               strInput.Append("~");
               strInput.Append(Convert.ToString(item[1]));
               strInput.Append(",");
               strDasID = Convert.ToString(item[0]);
            }
      }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19289597

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档