数据表选择产生不正确的列连接

Posted

技术标签:

【中文标题】数据表选择产生不正确的列连接【英文标题】:Datatable select producing incorrect concatenation of columns 【发布时间】:2014-04-25 07:55:31 【问题描述】:

从 C# 中的数据表中选择数据时出现问题。我正在用这个填充一个组合框。第 1 列重复了不同的描述。这是我正在使用的代码。

var comboItems = this.coreDataSet.Tables["TimesheetDataTable"].AsEnumerable()
                          .Select(row => row.Field<string>("column 1") + " (" + row.Field<string>("description") + ")")
                          .Distinct()
                          .ToList();

提前致谢

【问题讨论】:

【参考方案1】:

您的 select 语句完全符合我的预期。

用 EntityFramework 而不是 DataTables 填充组合框的代码:

using (var timesheetDb = new TimeSheetContext())

    var comboItems = timesheetDb.TimeSheets.Select(row => row.Column1 + " (" + row.Description + ")").Distinct().ToList();

    foreach (var item in comboItems)
    
        TestCombo.Items.Add(item);
    

您的数据是什么? .Distinct() 你的目标是什么?

【讨论】:

我的目标是为每个不同的列 1 只有一个条目。我知道我必须对该列进行分组,但我无法正常工作 数据是一组项目代码,具有匹配的描述作为单独的字段。我试图在括号中获取每个不同项目代码的描述,以便用户知道它是什么项目。 我的想法是在实体框架中执行mysql查询“Select concat(projectcode, '(', description, ')') from table group by projectcode”

以上是关于数据表选择产生不正确的列连接的主要内容,如果未能解决你的问题,请参考以下文章

TSQL:外部连接表的计数产生不正确的结果

hibenate考试题

更新连接中使用的列

再看数据库——连接

选择连接表的列值作为结果列名

数据表:标题中带有点 (.) 的列未正确显示