1

我有一个项目使用带有实体框架和 VB.Net 的 SQLite 数据库。数据库很复杂,但一切都设置得很好,可以访问各个表中的数据。

我需要的是一种方法来转换(透视?)来自两个或多个表的数据并获得一个结果表,其中的列是根据原始表中的数据动态生成的。例如,如果我从两个看起来像这样的表开始:

Table 1
Id      Data    Field
1       17      1
1       34      2
1       72      3
2       23      1
2       11      2
2       46      3
3       1       1
3       19      2
3       24      3

Table 2
Id      Data    Field
1       abc     4
1       def     5
1       ghi     6
2       jkl     4
2       mno     5
2       pqr     6
3       stu     4
3       vwx     5
3       yz      6

我需要最终得到以下结果表:

Id  Field1  Field2  Field3  Field4  Field5  Field6
1   17      34      72      abc     def     ghi
2   23      11      46      jkl     mno     pqr
3   1       19      24      stu     vwx     yz

很明显,简化了,但我希望总体布局清晰。在设计时,我知道会有多少字段(以及结果合并表中的列)。但是,我知道表 1 中的所有数据都是数字,表 2 中的所有数据都是文本。

显然,我可以遍历数据并在代码中动态构造一个 DataTable,但我试图找出是否有更有效的方法来完成它,它可以与数据绑定到数据网格一起使用。我尝试了各种 LINQ 连接(使用 System.Linq.Dynamic),但我总是遇到问题,因为我不知道会有多少字段。

另一个重要因素是这些数据需要是可编辑的,所以当用户更新一个值时,我需要有一些方法来确定正在编辑哪个原始表中的哪一行。

有人有什么想法吗?

4

0 回答 0