asp.net - 连接数据库 (MS Access) 或服务器端代码 (ASP.NET) 中的记录值

标签 asp.net sql ms-access gridview concatenation

很抱歉再次打扰大家。我在互联网上进行了搜索,但找不到解决我的问题的方法。我在 Access 中有两个表,输出如下:

MATH 5
ENGLISH 3
ENGLISH 2
PHYSICS 5
MATH 1
MATH 3

我希望它是:

MATH 5, 1, 3
ENGLISH 3, 2
PHYSICS 5

我怎样才能做到这一点?它尝试在 Access 数据库中使用 SQL 命令,但没有任何效果。我也在 ASP.NET 中使用 GridView 寻找解决方案,但也没有成功。有没有办法实现这一点,或者我应该采取不同的方法?

我能做的最好的就是 GROUP BY 所以输出看起来像这样:

MATH 5
MATH 3
MATH 1
PHYSICS 3
PHYSICS 1
...

最佳答案

我相信您正在寻找这样的东西 -

Join collection of objects into comma-separated string

我倾向于像您在问题中的 GROUP BY 中所做的那样拉回数据,然后连接 asp.net 代码中每个主题的数值。

或者您可以编写一个 VBA 函数在 Access 中使用来完成此操作。 Allen Browne here 已经写了一篇。您只需将代码添加到 Access 中的模块中,然后就可以在 Access 中的 SQL 查询中使用该函数。

鉴于此表结构

subjects table 

id  |  SubjectName  |    Grade
---------------------------------
1      MATH            5
2      ENGLISH         3
3      ENGLISH         2
4      PHYSICS         5
5      MATH            1
6      MATH            3

以下带有 VBA 函数的 SQL

SELECT 
    subjects.SubjectName + ' ' + 
    ConcatRelated("Grade","subjects","SubjectName='" & SubjectName & "'") AS result
FROM 
    subjects
GROUP BY
    subjects.SubjectName

产生以下结果

result
------------
ENGLISH 3, 2
MATH 5, 1, 3
PHYSICS 5

如果您想获得在问题中指定的顺序,您将需要另一个字段/表达式来进行排序

关于asp.net - 连接数据库 (MS Access) 或服务器端代码 (ASP.NET) 中的记录值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1094974/

相关文章:

javascript - 如何使 window.showmodaldialog 在 chrome 37 中工作?

c# - 通过最大化和恢复浏览器窗口调整大小的双滚动条

MySQL从另一个表中的计数较低的地方获取

c# - 从数据表添加到字典记录

C# NetworkStream.Read 奇数

Android获取联系人姓名和号码查询

sql - 按模型关联计数排序

sql - Microsoft Access 2010 中 SQL 查询的最大长度?

sql - 如何在 PostgreSQL 的逗号分隔列表(数组)中找到第二个值?

c# - 如何在asp.net core中添加多个身份和多个角色