C#MySql ASP.NET从数据库中的行中获取项目,并将它们放在网格视图中
本文关键字:视图 网格 项目 NET ASP 数据库 获取 C#MySql | 更新日期: 2023-09-27 17:58:16
我的数据库中有一个表,其中包含项目中的模块。这是一种多对多关系,模块id是模块表的外键,项目密钥是项目表的外键。我想在网格视图中显示与项目相关联的模块的名称。我已经完成了第一部分代码,但我不知道如何接收和存储所有模块id,然后如何在模块表中获取它们的名称并将它们放在网格视图中。任何帮助都将不胜感激。
有几种方法可以做到这一点。。。
1) 将模块表读入字典,并在需要时从中解析所需的名称。。。
2) 让mysql为您处理:
由于您没有提供表模式,您可能需要调整查询。。。
SELECT
ProjectsTable.Name AS 'Project',
GROUP_CONCAT(COALESCE(ModulesTable.Name,'None') SEPARATOR ', ') AS 'Modules'
FROM ProjectsTable
LEFT JOIN ProjectsModulesTable ON ProjectsTable.id = ProjectsModulesTable.projectId
LEFT JOIN ModulesTable ON ProjectsModulesTable.moduleId = ModulesTable.id
(查询未测试)
3) 使用一些框架(例如实体框架),为数据库实体构建对象,并通过这些对象访问名称
1)创建一个名为MyClass的类.ie
public class MyClass
{
public int MyModules{ get; set; }
}
2) Now in the Main Block
List<MyClass> lstObj = new List<MyClass>();
// add the modules one by one
MyClass obj = new MyClass();
obj.MyModules= // your code to add modules
lstObj.add(obj);
// after your logic and filling the List.
gridView1.datasource = lstObj;
gridView1.databind();
its done now.